QAR-520 maintenance-7 merge -- svn merge -r 84923:86093 svn+ssh://svn.lindenlab.com/svn/linden/qa/maintenance-7-sandbox-84884 -- dataserver-is-deprecated
parent
4192700475
commit
e1e1212daa
|
|
@ -215,8 +215,12 @@ class LLSDXMLFormatter(object):
|
|||
def format(self, something):
|
||||
return '<?xml version="1.0" ?>' + self.elt("llsd", self.generate(something))
|
||||
|
||||
_g_xml_formatter = None
|
||||
def format_xml(something):
|
||||
return LLSDXMLFormatter().format(something)
|
||||
global _g_xml_formatter
|
||||
if _g_xml_formatter is None:
|
||||
_g_xml_formatter = LLSDXMLFormatter()
|
||||
return _g_xml_formatter.format(something)
|
||||
|
||||
class LLSDNotationFormatter(object):
|
||||
def __init__(self):
|
||||
|
|
|
|||
|
|
@ -71,6 +71,15 @@ static F32 MAX_CONSTRAINTS = 10;
|
|||
// JointMotionList
|
||||
//-----------------------------------------------------------------------------
|
||||
LLKeyframeMotion::JointMotionList::JointMotionList()
|
||||
: mDuration(0.f),
|
||||
mLoop(FALSE),
|
||||
mLoopInPoint(0.f),
|
||||
mLoopOutPoint(0.f),
|
||||
mEaseInDuration(0.f),
|
||||
mEaseOutDuration(0.f),
|
||||
mBasePriority(LLJoint::LOW_PRIORITY),
|
||||
mHandPose(LLHandMotion::HAND_POSE_SPREAD),
|
||||
mMaxPriority(LLJoint::LOW_PRIORITY)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -2116,11 +2125,19 @@ void LLKeyframeDataCache::clear()
|
|||
//-----------------------------------------------------------------------------
|
||||
LLKeyframeMotion::JointConstraint::JointConstraint(JointConstraintSharedData* shared_data) : mSharedData(shared_data)
|
||||
{
|
||||
mWeight = 0.f;
|
||||
mTotalLength = 0.f;
|
||||
mActive = FALSE;
|
||||
mSourceVolume = NULL;
|
||||
mTargetVolume = NULL;
|
||||
mFixupDistanceRMS = 0.f;
|
||||
|
||||
int i;
|
||||
for (i=0; i<MAX_CHAIN_LENGTH; ++i)
|
||||
{
|
||||
mJointLengths[i] = 0.f;
|
||||
mJointLengthFractions[i] = 0.f;
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -224,7 +224,11 @@ protected:
|
|||
mEaseOutStopTime(0.f),
|
||||
mUseTargetOffset(FALSE),
|
||||
mConstraintType(TYPE_POINT),
|
||||
mConstraintTargetType(TYPE_BODY) {};
|
||||
mConstraintTargetType(TYPE_BODY),
|
||||
mSourceConstraintVolume(0),
|
||||
mTargetConstraintVolume(0),
|
||||
mJointStateIndices(NULL)
|
||||
{ };
|
||||
~JointConstraintSharedData() { delete [] mJointStateIndices; }
|
||||
|
||||
S32 mSourceConstraintVolume;
|
||||
|
|
|
|||
|
|
@ -139,9 +139,16 @@ BOOL LLKeyframeWalkMotion::onUpdate(F32 time, U8* joint_mask)
|
|||
// LLWalkAdjustMotion()
|
||||
// Class Constructor
|
||||
//-----------------------------------------------------------------------------
|
||||
LLWalkAdjustMotion::LLWalkAdjustMotion(const LLUUID &id) : LLMotion(id)
|
||||
LLWalkAdjustMotion::LLWalkAdjustMotion(const LLUUID &id) :
|
||||
LLMotion(id),
|
||||
mLastTime(0.f),
|
||||
mAvgCorrection(0.f),
|
||||
mSpeedAdjust(0.f),
|
||||
mAnimSpeed(0.f),
|
||||
mAvgSpeed(0.f),
|
||||
mRelativeDir(0.f),
|
||||
mAnkleOffset(0.f)
|
||||
{
|
||||
mLastTime = 0.f;
|
||||
mName = "walk_adjust";
|
||||
|
||||
mPelvisState = new LLJointState;
|
||||
|
|
@ -349,7 +356,8 @@ void LLWalkAdjustMotion::onDeactivate()
|
|||
// LLFlyAdjustMotion::LLFlyAdjustMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
LLFlyAdjustMotion::LLFlyAdjustMotion(const LLUUID &id)
|
||||
: LLMotion(id)
|
||||
: LLMotion(id),
|
||||
mRoll(0.f)
|
||||
{
|
||||
mName = "fly_adjust";
|
||||
|
||||
|
|
|
|||
|
|
@ -155,18 +155,19 @@ LLMotion *LLMotionRegistry::createMotion( const LLUUID &id )
|
|||
// LLMotionController()
|
||||
// Class Constructor
|
||||
//-----------------------------------------------------------------------------
|
||||
LLMotionController::LLMotionController( )
|
||||
LLMotionController::LLMotionController()
|
||||
: mTimeFactor(1.f),
|
||||
mCharacter(NULL),
|
||||
mTime(0.f),
|
||||
mTimeOffset(0.f),
|
||||
mLastTime(0.0f),
|
||||
mHasRunOnce(FALSE),
|
||||
mPaused(FALSE),
|
||||
mPauseTime(0.f),
|
||||
mTimeStep(0.f),
|
||||
mTimeStepCount(0),
|
||||
mLastInterp(0.f)
|
||||
{
|
||||
mTime = 0.f;
|
||||
mTimeOffset = 0.f;
|
||||
mLastTime = 0.0f;
|
||||
mHasRunOnce = FALSE;
|
||||
mPaused = FALSE;
|
||||
mPauseTime = 0.f;
|
||||
mTimeStep = 0.f;
|
||||
mTimeStepCount = 0;
|
||||
mLastInterp = 0.f;
|
||||
mTimeFactor = 1.f;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -227,10 +227,10 @@ protected:
|
|||
F32 mLastTime;
|
||||
BOOL mHasRunOnce;
|
||||
BOOL mPaused;
|
||||
F32 mPauseTime;
|
||||
F32 mTimeStep;
|
||||
S32 mTimeStepCount;
|
||||
F32 mLastInterp;
|
||||
F32 mPauseTime;
|
||||
|
||||
U8 mJointSignature[2][LL_CHARACTER_MAX_JOINTS];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ LLJointStateBlender::LLJointStateBlender()
|
|||
{
|
||||
mJointStates[i] = NULL;
|
||||
mPriorities[i] = S32_MIN;
|
||||
mAdditiveBlends[i] = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -458,6 +459,7 @@ void LLJointStateBlender::resetCachedJoint()
|
|||
//-----------------------------------------------------------------------------
|
||||
|
||||
LLPoseBlender::LLPoseBlender()
|
||||
: mNextPoseSlot(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -492,6 +492,7 @@ void LLApp::setDefaultChildCallback(LLAppChildCallback callback)
|
|||
|
||||
pid_t LLApp::fork()
|
||||
{
|
||||
fflush(NULL); // flush all buffers before the child inherits them
|
||||
pid_t pid = ::fork();
|
||||
if( pid < 0 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1006,18 +1006,15 @@ namespace LLError
|
|||
<< "(" << site.mLine << ") : ";
|
||||
}
|
||||
|
||||
if (message.find(functionName(site.mFunction)) == std::string::npos)
|
||||
{
|
||||
#if LL_WINDOWS
|
||||
// DevStudio: __FUNCTION__ already includes the full class name
|
||||
// DevStudio: __FUNCTION__ already includes the full class name
|
||||
#else
|
||||
if (site.mClassInfo != typeid(NoClassInfo))
|
||||
{
|
||||
prefix << className(site.mClassInfo) << "::";
|
||||
}
|
||||
#endif
|
||||
prefix << site.mFunction << ": ";
|
||||
if (site.mClassInfo != typeid(NoClassInfo))
|
||||
{
|
||||
prefix << className(site.mClassInfo) << "::";
|
||||
}
|
||||
#endif
|
||||
prefix << site.mFunction << ": ";
|
||||
|
||||
prefix << message;
|
||||
message = prefix.str();
|
||||
|
|
|
|||
|
|
@ -181,4 +181,7 @@ const S32 OBJECT_OWNER = 6;
|
|||
const S32 OBJECT_GROUP = 7;
|
||||
const S32 OBJECT_CREATOR = 8;
|
||||
|
||||
// llTextBox() magic token string - yes this is a hack. sue me.
|
||||
const std::string TEXTBOX_MAGIC_TOKEN = "!!llTextBox!!";
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -39,15 +39,8 @@
|
|||
|
||||
const char LL_UNKNOWN_CHAR = '?';
|
||||
|
||||
class LLVector3;
|
||||
class LLVector3d;
|
||||
class LLQuaternion;
|
||||
class LLUUID;
|
||||
class LLColor4;
|
||||
class LLColor4U;
|
||||
|
||||
#if (LL_DARWIN || LL_SOLARIS || (LL_LINUX && __GNUC__ > 2))
|
||||
// Template specialization of char_traits for U16s. Only necessary on Mac for now (exists on Windows, unused/broken on Linux/gcc2.95)
|
||||
#if LL_DARWIN || LL_LINUX || LL_SOLARIS
|
||||
// Template specialization of char_traits for U16s. Only necessary on Mac and Linux (exists on Windows already)
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
|
|
@ -166,13 +159,13 @@ public:
|
|||
// but it might be worthwhile to just go with two implementations (LLString and LLWString) of
|
||||
// an interface class, unless we can think of a good reason to have a std::basic_string polymorphic base
|
||||
|
||||
//****************************************************************
|
||||
// ****************************************************************
|
||||
// NOTA BENE: do *NOT* dynamically allocate memory inside of LLStringBase as the {*()^#%*)#%W^*)#%*)STL implentation
|
||||
// of basic_string doesn't provide a virtual destructor. If we need to allocate resources specific to LLString
|
||||
// then we should either customize std::basic_string to linden::basic_string or change LLString to be a wrapper
|
||||
// that contains an instance of std::basic_string. Similarly, overriding methods defined in std::basic_string will *not*
|
||||
// be called in a polymorphic manner (passing an instance of basic_string to a particular function)
|
||||
//****************************************************************
|
||||
// ****************************************************************
|
||||
|
||||
template <class T>
|
||||
class LLStringBase : public std::basic_string<T>
|
||||
|
|
@ -196,35 +189,6 @@ public:
|
|||
LLStringBase(const T* s);
|
||||
LLStringBase(const T* s, size_type n);
|
||||
LLStringBase(const T* s, size_type pos, size_type n );
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
void clear() { assign(null); }
|
||||
|
||||
LLStringBase<T>& assign(const T* s);
|
||||
LLStringBase<T>& assign(const T* s, size_type n);
|
||||
LLStringBase<T>& assign(const LLStringBase& s);
|
||||
LLStringBase<T>& assign(size_type n, const T& c);
|
||||
LLStringBase<T>& assign(const T* a, const T* b);
|
||||
LLStringBase<T>& assign(typename LLStringBase<T>::iterator &it1, typename LLStringBase<T>::iterator &it2);
|
||||
LLStringBase<T>& assign(typename LLStringBase<T>::const_iterator &it1, typename LLStringBase<T>::const_iterator &it2);
|
||||
|
||||
// workaround for bug in gcc2 STL headers.
|
||||
#if ((__GNUC__ <= 2) && (!defined _STLPORT_VERSION))
|
||||
const T* c_str () const
|
||||
{
|
||||
if (length () == 0)
|
||||
{
|
||||
static const T zero = 0;
|
||||
return &zero;
|
||||
}
|
||||
|
||||
//terminate ();
|
||||
{ string_char_traits<T>::assign(const_cast<T*>(data())[length()], string_char_traits<T>::eos()); }
|
||||
|
||||
return data ();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
bool operator==(const T* _Right) const { return _Right ? (std::basic_string<T>::compare(_Right) == 0) : this->empty(); }
|
||||
|
||||
|
|
@ -787,78 +751,6 @@ LLStringBase<T>::LLStringBase(const T* s, size_type pos, size_type n ) : std::ba
|
|||
}
|
||||
}
|
||||
|
||||
#if LL_LINUX || LL_SOLARIS
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(const T* s)
|
||||
{
|
||||
if (s)
|
||||
{
|
||||
std::basic_string<T>::assign(s);
|
||||
}
|
||||
else
|
||||
{
|
||||
assign(LLStringBase<T>::null);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(const T* s, size_type n)
|
||||
{
|
||||
if (s)
|
||||
{
|
||||
std::basic_string<T>::assign(s, n);
|
||||
}
|
||||
else
|
||||
{
|
||||
assign(LLStringBase<T>::null);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(const LLStringBase<T>& s)
|
||||
{
|
||||
std::basic_string<T>::assign(s);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(size_type n, const T& c)
|
||||
{
|
||||
std::basic_string<T>::assign(n, c);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(const T* a, const T* b)
|
||||
{
|
||||
if (a > b)
|
||||
assign(LLStringBase<T>::null);
|
||||
else
|
||||
assign(a, (size_type) (b-a));
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(typename LLStringBase<T>::iterator &it1, typename LLStringBase<T>::iterator &it2)
|
||||
{
|
||||
assign(LLStringBase<T>::null);
|
||||
while(it1 != it2)
|
||||
*this += *it1++;
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
LLStringBase<T>& LLStringBase<T>::assign(typename LLStringBase<T>::const_iterator &it1, typename LLStringBase<T>::const_iterator &it2)
|
||||
{
|
||||
assign(LLStringBase<T>::null);
|
||||
while(it1 != it2)
|
||||
*this += *it1++;
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
//static
|
||||
template<class T>
|
||||
void LLStringBase<T>::toUpper(std::basic_string<T>& string)
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ LLImageJPEG::LLImageJPEG()
|
|||
LLImageFormatted(IMG_CODEC_JPEG),
|
||||
mOutputBuffer( NULL ),
|
||||
mOutputBufferSize( 0 ),
|
||||
mEncodeQuality( 75 ) // on a scale from 1 to 100
|
||||
mEncodeQuality( 75 ), // on a scale from 1 to 100
|
||||
mSetjmpBuffer()
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,30 @@ LLImageTGA::LLImageTGA()
|
|||
mColorMapStart( 0 ),
|
||||
mColorMapLength( 0 ),
|
||||
mColorMapBytesPerEntry( 0 ),
|
||||
mIs15Bit( FALSE )
|
||||
mIs15Bit( FALSE ),
|
||||
|
||||
mAttributeBits(0),
|
||||
mColorMapDepth(0),
|
||||
mColorMapIndexHi(0),
|
||||
mColorMapIndexLo(0),
|
||||
mColorMapLengthHi(0),
|
||||
mColorMapLengthLo(0),
|
||||
mColorMapType(0),
|
||||
mDataOffset(0),
|
||||
mHeightHi(0),
|
||||
mHeightLo(0),
|
||||
mIDLength(0),
|
||||
mImageType(0),
|
||||
mInterleave(0),
|
||||
mOriginRightBit(0),
|
||||
mOriginTopBit(0),
|
||||
mPixelSize(0),
|
||||
mWidthHi(0),
|
||||
mWidthLo(0),
|
||||
mXOffsetHi(0),
|
||||
mXOffsetLo(0),
|
||||
mYOffsetHi(0),
|
||||
mYOffsetLo(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,17 +42,22 @@
|
|||
|
||||
LLPngWrapper::LLPngWrapper()
|
||||
: mReadPngPtr( NULL ),
|
||||
mReadInfoPtr( NULL ),
|
||||
mReadInfoPtr( NULL ),
|
||||
mWritePngPtr( NULL ),
|
||||
mWriteInfoPtr( NULL ),
|
||||
mRowPointers( NULL ),
|
||||
mWidth( 0 ),
|
||||
mHeight( 0 ),
|
||||
mBitDepth( 0 ),
|
||||
mColorType( 0 ),
|
||||
mChannels( 0 ),
|
||||
mInterlaceType( 0 ),
|
||||
mCompressionType( 0 ),
|
||||
mFilterMethod( 0 ),
|
||||
mFinalSize( 0 )
|
||||
mFinalSize( 0 ),
|
||||
mHasBKGD(false),
|
||||
mBackgroundColor(),
|
||||
mGamma(0.f)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ private:
|
|||
|
||||
U32 mFinalSize;
|
||||
|
||||
BOOL mHasBKGD;
|
||||
bool mHasBKGD;
|
||||
png_color_16p mBackgroundColor;
|
||||
|
||||
F64 mGamma;
|
||||
|
|
|
|||
|
|
@ -1,33 +1,33 @@
|
|||
/**
|
||||
* @file llparcel.cpp
|
||||
* @brief A land parcel.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2002-2007, Linden Research, Inc.
|
||||
*
|
||||
* 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://secondlife.com/developers/opensource/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
|
||||
*
|
||||
* 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,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
* @file llparcel.cpp
|
||||
* @brief A land parcel.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2002-2007, Linden Research, Inc.
|
||||
*
|
||||
* 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://secondlife.com/developers/opensource/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
|
||||
*
|
||||
* 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,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
|
|
@ -241,6 +241,9 @@ void LLParcel::init(const LLUUID &owner_id,
|
|||
setSelectedPrimCount(0);
|
||||
setTempPrimCount(0);
|
||||
setCleanOtherTime(0);
|
||||
setRegionPushOverride(FALSE);
|
||||
setRegionDenyAnonymousOverride(FALSE);
|
||||
setRegionDenyAgeUnverifiedOverride(FALSE);
|
||||
setParcelPrimBonus(parcel_object_bonus);
|
||||
|
||||
setPreviousOwnerID(LLUUID::null);
|
||||
|
|
|
|||
|
|
@ -826,7 +826,7 @@ LLXMLNode *LLPermissions::exportFileXML() const
|
|||
{
|
||||
LLXMLNode *ret = new LLXMLNode("permissions", FALSE);
|
||||
|
||||
ret->createChild("group_owned", TRUE)->setBoolValue(1, (const BOOL*)&mIsGroupOwned);
|
||||
ret->createChild("group_owned", TRUE)->setBoolValue(mIsGroupOwned);
|
||||
|
||||
ret->createChild("base_mask", FALSE)->setByteValue(4, (U8*)&mMaskBase, LLXMLNode::ENCODING_HEX);
|
||||
ret->createChild("owner_mask", FALSE)->setByteValue(4, (U8*)&mMaskOwner, LLXMLNode::ENCODING_HEX);
|
||||
|
|
@ -869,7 +869,11 @@ bool LLPermissions::importXML(LLXMLNode* node)
|
|||
if (node->getChild("group_id", sub_node))
|
||||
success = success && (1 == sub_node->getUUIDValue(1, &mGroup));
|
||||
if (node->getChild("group_owned", sub_node))
|
||||
success = success && (1 == sub_node->getBoolValue(1, (BOOL*)&mIsGroupOwned));
|
||||
{
|
||||
BOOL tmpbool = FALSE;
|
||||
success = success && (1 == sub_node->getBoolValue(1, &tmpbool));
|
||||
mIsGroupOwned = (bool)tmpbool;
|
||||
}
|
||||
if (!success)
|
||||
{
|
||||
lldebugs << "LLPermissions::importXML() failed for node named '"
|
||||
|
|
|
|||
|
|
@ -95,12 +95,16 @@ std::string build_transfer_message_to_source(
|
|||
const LLUUID& dest_id,
|
||||
const std::string& dest_name,
|
||||
S32 transaction_type,
|
||||
const char* description)
|
||||
const char* desc)
|
||||
{
|
||||
std::string description(ll_safe_string(desc));
|
||||
lldebugs << "build_transfer_message_to_source: " << amount << " "
|
||||
<< source_id << " " << dest_id << " " << dest_name << " "
|
||||
<< (description?description:"(no desc)") << llendl;
|
||||
if((0 == amount) || source_id.isNull()) return ll_safe_string(description);
|
||||
<< transaction_type << " "
|
||||
<< (description.empty()?"(no desc)":description.c_str())
|
||||
<< llendl;
|
||||
if(source_id.isNull()) return description;
|
||||
if((0 == amount) && description.empty()) return description;
|
||||
std::ostringstream ostr;
|
||||
if(dest_id.isNull())
|
||||
{
|
||||
|
|
@ -123,7 +127,7 @@ std::string build_transfer_message_to_source(
|
|||
else
|
||||
{
|
||||
ostr << "You paid " << dest_name << " L$" << amount;
|
||||
append_reason(ostr, transaction_type, description);
|
||||
append_reason(ostr, transaction_type, description.c_str());
|
||||
}
|
||||
ostr << ".";
|
||||
return ostr.str();
|
||||
|
|
@ -139,7 +143,8 @@ std::string build_transfer_message_to_destination(
|
|||
{
|
||||
lldebugs << "build_transfer_message_to_dest: " << amount << " "
|
||||
<< dest_id << " " << source_id << " " << source_name << " "
|
||||
<< (description?description:"(no desc)") << llendl;
|
||||
<< transaction_type << " " << (description?description:"(no desc)")
|
||||
<< llendl;
|
||||
if(0 == amount) return std::string();
|
||||
if(dest_id.isNull()) return ll_safe_string(description);
|
||||
std::ostringstream ostr;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@
|
|||
#ifndef LL_LLTRANSACTIONFLAGS_H
|
||||
#define LL_LLTRANSACTIONFLAGS_H
|
||||
|
||||
class LLUUID;
|
||||
|
||||
typedef U8 TransactionFlags;
|
||||
|
||||
// defined in common/llinventory/lltransactionflags.cpp
|
||||
|
|
|
|||
|
|
@ -115,11 +115,12 @@ protected:
|
|||
LLPlane mWorldPlanes[PLANE_NUM];
|
||||
LLPlane mHorizPlanes[HORIZ_PLANE_NUM];
|
||||
|
||||
typedef struct
|
||||
struct frustum_plane
|
||||
{
|
||||
frustum_plane() : mask(0) {}
|
||||
LLPlane p;
|
||||
U8 mask;
|
||||
} frustum_plane;
|
||||
};
|
||||
frustum_plane mAgentPlanes[7]; //frustum planes in agent space a la gluUnproject (I'm a bastard, I know) - DaveP
|
||||
|
||||
U32 mPlaneCount; //defaults to 6, if setUserClipPlane is called, uses user supplied clip plane in
|
||||
|
|
|
|||
|
|
@ -4182,13 +4182,13 @@ std::ostream& operator<<(std::ostream &s, const LLVolume *volumep)
|
|||
|
||||
|
||||
LLVolumeFace::LLVolumeFace()
|
||||
: mID(0),
|
||||
mTypeMask(0),
|
||||
mBeginS(0),
|
||||
mBeginT(0),
|
||||
mNumS(0),
|
||||
mNumT(0)
|
||||
{
|
||||
mTypeMask = 0;
|
||||
mID = 0;
|
||||
mBeginS = 0;
|
||||
mBeginT = 0;
|
||||
mNumS = 0;
|
||||
mNumT = 0;
|
||||
mHasBinormals = FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -188,15 +188,20 @@ class LLProfileParams
|
|||
{
|
||||
public:
|
||||
LLProfileParams()
|
||||
: mCurveType(LL_PCODE_PROFILE_SQUARE),
|
||||
mBegin(0.f),
|
||||
mEnd(1.f),
|
||||
mHollow(0.f),
|
||||
mCRC(0)
|
||||
{
|
||||
mCurveType = LL_PCODE_PROFILE_SQUARE;
|
||||
mBegin = 0.f;
|
||||
mEnd = 1.f;
|
||||
mHollow = 0.f;
|
||||
}
|
||||
|
||||
LLProfileParams(U8 curve, F32 begin, F32 end, F32 hollow)
|
||||
: mCurveType(curve), mBegin(begin), mEnd(end), mHollow(hollow)
|
||||
: mCurveType(curve),
|
||||
mBegin(begin),
|
||||
mEnd(end),
|
||||
mHollow(hollow),
|
||||
mCRC(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -221,6 +226,7 @@ public:
|
|||
temp_f32 = 1.f;
|
||||
}
|
||||
mHollow = temp_f32;
|
||||
mCRC = 0;
|
||||
}
|
||||
|
||||
bool operator==(const LLProfileParams ¶ms) const;
|
||||
|
|
@ -308,27 +314,36 @@ class LLPathParams
|
|||
{
|
||||
public:
|
||||
LLPathParams()
|
||||
:
|
||||
mCurveType(LL_PCODE_PATH_LINE),
|
||||
mBegin(0.f),
|
||||
mEnd(1.f),
|
||||
mScale(1.f,1.f),
|
||||
mShear(0.f,0.f),
|
||||
mTwistBegin(0.f),
|
||||
mTwistEnd(0.f),
|
||||
mRadiusOffset(0.f),
|
||||
mTaper(0.f,0.f),
|
||||
mRevolutions(1.f),
|
||||
mSkew(0.f),
|
||||
mCRC(0)
|
||||
{
|
||||
mBegin = 0.f;
|
||||
mEnd = 1.f;
|
||||
mScale.setVec(1.f,1.f);
|
||||
mShear.setVec(0.f,0.f);
|
||||
mCurveType = LL_PCODE_PATH_LINE;
|
||||
mTwistBegin = 0.f;
|
||||
mTwistEnd = 0.f;
|
||||
mRadiusOffset = 0.f;
|
||||
mTaper.setVec(0.f,0.f);
|
||||
mRevolutions = 1.f;
|
||||
mSkew = 0.f;
|
||||
}
|
||||
|
||||
LLPathParams(U8 curve, F32 begin, F32 end, F32 scx, F32 scy, F32 shx, F32 shy, F32 twistend, F32 twistbegin, F32 radiusoffset, F32 tx, F32 ty, F32 revolutions, F32 skew)
|
||||
: mCurveType(curve), mBegin(begin), mEnd(end), mTwistBegin(twistbegin), mTwistEnd(twistend),
|
||||
mRadiusOffset(radiusoffset), mRevolutions(revolutions), mSkew(skew)
|
||||
: mCurveType(curve),
|
||||
mBegin(begin),
|
||||
mEnd(end),
|
||||
mScale(scx,scy),
|
||||
mShear(shx,shy),
|
||||
mTwistBegin(twistbegin),
|
||||
mTwistEnd(twistend),
|
||||
mRadiusOffset(radiusoffset),
|
||||
mTaper(tx,ty),
|
||||
mRevolutions(revolutions),
|
||||
mSkew(skew),
|
||||
mCRC(0)
|
||||
{
|
||||
mScale.setVec(scx,scy);
|
||||
mShear.setVec(shx,shy);
|
||||
mTaper.setVec(tx,ty);
|
||||
}
|
||||
|
||||
LLPathParams(U8 curve, U16 begin, U16 end, U8 scx, U8 scy, U8 shx, U8 shy, U8 twistend, U8 twistbegin, U8 radiusoffset, U8 tx, U8 ty, U8 revolutions, U8 skew)
|
||||
|
|
@ -346,6 +361,8 @@ public:
|
|||
mTaper.setVec(U8_TO_F32(tx) * TAPER_QUANTA,U8_TO_F32(ty) * TAPER_QUANTA);
|
||||
mRevolutions = ((F32)revolutions) * REV_QUANTA + 1.0f;
|
||||
mSkew = U8_TO_F32(skew) * SCALE_QUANTA;
|
||||
|
||||
mCRC = 0;
|
||||
}
|
||||
|
||||
bool operator==(const LLPathParams ¶ms) const;
|
||||
|
|
@ -524,6 +541,7 @@ class LLVolumeParams
|
|||
{
|
||||
public:
|
||||
LLVolumeParams()
|
||||
: mSculptType(LL_SCULPT_TYPE_NONE)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -648,7 +666,9 @@ public:
|
|||
mConcave(FALSE),
|
||||
mDirty(TRUE),
|
||||
mTotalOut(0),
|
||||
mTotal(2)
|
||||
mTotal(2),
|
||||
mMinX(0.f),
|
||||
mMaxX(0.f)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -677,8 +697,6 @@ public:
|
|||
std::vector<Face> mFaces;
|
||||
std::vector<LLVector3> mEdgeNormals;
|
||||
std::vector<LLVector3> mEdgeCenters;
|
||||
F32 mMaxX;
|
||||
F32 mMinX;
|
||||
|
||||
friend std::ostream& operator<<(std::ostream &s, const LLProfile &profile);
|
||||
|
||||
|
|
@ -697,6 +715,9 @@ protected:
|
|||
|
||||
S32 mTotalOut;
|
||||
S32 mTotal;
|
||||
|
||||
F32 mMaxX;
|
||||
F32 mMinX;
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@
|
|||
#include "llsdmessagebuilder.h"
|
||||
#include "llsdutil.h"
|
||||
|
||||
LLSDMessageReader::LLSDMessageReader()
|
||||
LLSDMessageReader::LLSDMessageReader() :
|
||||
mMessageName(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -212,7 +212,8 @@ public:
|
|||
mMaxContentWidth(0),
|
||||
mIndex(-1),
|
||||
mParentCtrl(NULL),
|
||||
mHeader(NULL)
|
||||
mHeader(NULL),
|
||||
mFontAlignment(LLFontGL::LEFT)
|
||||
{ }
|
||||
|
||||
LLScrollListColumn(const LLSD &sd)
|
||||
|
|
@ -260,6 +261,7 @@ public:
|
|||
mIndex = -1;
|
||||
mParentCtrl = NULL;
|
||||
mHeader = NULL;
|
||||
mFontAlignment = LLFontGL::LEFT;
|
||||
}
|
||||
|
||||
// Public data is fine so long as this remains a simple struct-like data class.
|
||||
|
|
|
|||
|
|
@ -4003,7 +4003,11 @@ BOOL LLTextEditor::exportBuffer(LLString &buffer )
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
// LLTextSegment
|
||||
|
||||
LLTextSegment::LLTextSegment(S32 start) : mStart(start)
|
||||
LLTextSegment::LLTextSegment(S32 start) :
|
||||
mStart(start),
|
||||
mEnd(0),
|
||||
mToken(NULL),
|
||||
mIsDefault(FALSE)
|
||||
{
|
||||
}
|
||||
LLTextSegment::LLTextSegment( const LLStyleSP& style, S32 start, S32 end ) :
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ LLKeyboard::LLKeyboard() : mCallbacks(NULL), mNumpadDistinct(ND_NUMLOCK_OFF)
|
|||
|
||||
mInsertMode = LL_KIM_INSERT;
|
||||
mCurTranslatedKey = KEY_NONE;
|
||||
mCurScanKey = KEY_NONE;
|
||||
|
||||
addKeyName(' ', "Space" );
|
||||
addKeyName(KEY_RETURN, "Enter" );
|
||||
|
|
|
|||
|
|
@ -2762,7 +2762,7 @@ void spawn_web_browser(const char* escaped_url)
|
|||
cmd += "launch_url.sh";
|
||||
char* const argv[] = {(char*)cmd.c_str(), (char*)escaped_url, NULL};
|
||||
|
||||
fflush(NULL);
|
||||
fflush(NULL); // flush all buffers before the child inherits them
|
||||
pid_t pid = fork();
|
||||
if (pid == 0)
|
||||
{ // child
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ BOOL LLXMLNode::sStripWhitespaceValues = FALSE;
|
|||
|
||||
LLXMLNode::LLXMLNode() :
|
||||
mID(""),
|
||||
mParser(NULL),
|
||||
mIsAttribute(FALSE),
|
||||
mVersionMajor(0),
|
||||
mVersionMinor(0),
|
||||
|
|
@ -72,6 +73,7 @@ LLXMLNode::LLXMLNode() :
|
|||
|
||||
LLXMLNode::LLXMLNode(const LLString& name, BOOL is_attribute) :
|
||||
mID(""),
|
||||
mParser(NULL),
|
||||
mIsAttribute(is_attribute),
|
||||
mVersionMajor(0),
|
||||
mVersionMinor(0),
|
||||
|
|
@ -89,6 +91,7 @@ LLXMLNode::LLXMLNode(const LLString& name, BOOL is_attribute) :
|
|||
|
||||
LLXMLNode::LLXMLNode(LLStringTableEntry* name, BOOL is_attribute) :
|
||||
mID(""),
|
||||
mParser(NULL),
|
||||
mIsAttribute(is_attribute),
|
||||
mVersionMajor(0),
|
||||
mVersionMinor(0),
|
||||
|
|
|
|||
|
|
@ -49,6 +49,13 @@
|
|||
#include "llstringtable.h"
|
||||
|
||||
|
||||
class LLVector3;
|
||||
class LLVector3d;
|
||||
class LLQuaternion;
|
||||
class LLUUID;
|
||||
class LLColor4;
|
||||
class LLColor4U;
|
||||
|
||||
|
||||
struct CompareAttributes
|
||||
{
|
||||
|
|
|
|||
|
|
@ -436,10 +436,12 @@ void LLScriptLibrary::init()
|
|||
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llStringTrim", "s", "si", "string llStringTrim(string src, integer trim_type)\nTrim leading and/or trailing spaces from a string.\nUses trim_type of STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL."));
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llRegionSay", NULL, "is", "llRegionSay(integer channel, string msg)\nbroadcasts msg to entire region on channel (not 0.)"));
|
||||
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetObjectDetails", "l", "kl", "list llGetObjectDetails(key id, list params)\nGets the object details specified in params for the object with key id.\nDetails are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR."));
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetClickAction", NULL, "i", "llSetClickAction(integer action)\nSets the action performed when a prim is clicked upon."));
|
||||
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llSetClickAction", NULL, "i", "llSetClickAction(integer action)\nSets the action performed when a prim is clicked upon."));
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetRegionAgentCount", "i", NULL, "int llGetRegionAgentCount()\nreturns the number of agents in a region"));
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 1.f, dummy_func, "llTextBox", NULL, "ksi", "llTextBox(key avatar, string message, integer chat_channel\nShows a dialog box on the avatar's screen with the message.\nA text box asks for input, and if entered the text is chatted on chat_channel."));
|
||||
addFunction(new LLScriptLibraryFunction(10.f, 0.f, dummy_func, "llGetAgentLanguage", "s", "k", "string llGetAgentLanguage(key id)\nGets the agents preferred language.."));
|
||||
|
||||
// energy, sleep, dummy_func, name, return type, parameters, help text, gods-only
|
||||
|
||||
|
|
|
|||
|
|
@ -3808,6 +3808,17 @@
|
|||
<key>Value</key>
|
||||
<string>default</string>
|
||||
</map>
|
||||
<key>LanguageIsPublic</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Let other residents see our language information</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>LastFeatureVersion</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -4770,6 +4770,9 @@ void LLAgent::buildFullnameAndTitle(std::string& name) const
|
|||
|
||||
BOOL LLAgent::isInGroup(const LLUUID& group_id) const
|
||||
{
|
||||
if (isGodlike())
|
||||
return true;
|
||||
|
||||
S32 count = mGroups.count();
|
||||
for(S32 i = 0; i < count; ++i)
|
||||
{
|
||||
|
|
@ -4784,6 +4787,9 @@ BOOL LLAgent::isInGroup(const LLUUID& group_id) const
|
|||
// This implementation should mirror LLAgentInfo::hasPowerInGroup
|
||||
BOOL LLAgent::hasPowerInGroup(const LLUUID& group_id, U64 power) const
|
||||
{
|
||||
if (isGodlike())
|
||||
return true;
|
||||
|
||||
// GP_NO_POWERS can also mean no power is enough to grant an ability.
|
||||
if (GP_NO_POWERS == power) return FALSE;
|
||||
|
||||
|
|
@ -4805,6 +4811,9 @@ BOOL LLAgent::hasPowerInActiveGroup(U64 power) const
|
|||
|
||||
U64 LLAgent::getPowerInGroup(const LLUUID& group_id) const
|
||||
{
|
||||
if (isGodlike())
|
||||
return GP_ALL_POWERS;
|
||||
|
||||
S32 count = mGroups.count();
|
||||
for(S32 i = 0; i < count; ++i)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
/**
|
||||
* @file llagentlanguage.cpp
|
||||
* @brief Transmit language information to server
|
||||
*
|
||||
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2006-2007, Linden Research, Inc.
|
||||
*
|
||||
* 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://secondlife.com/developers/opensource/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
|
||||
*
|
||||
* 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,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
#include "llagentlanguage.h"
|
||||
#include "llagent.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerregion.h"
|
||||
|
||||
LLAgentLanguage::LLAgentLanguage()
|
||||
{
|
||||
gSavedSettings.getControl("Language")->getSignal()->connect(boost::bind(&update));
|
||||
gSavedSettings.getControl("SystemLanguage")->getSignal()->connect(boost::bind(&update));
|
||||
gSavedSettings.getControl("LanguageIsPublic")->getSignal()->connect(boost::bind(&update));
|
||||
}
|
||||
|
||||
|
||||
// send language settings to the sim
|
||||
// static
|
||||
bool LLAgentLanguage::update()
|
||||
{
|
||||
LLSD body;
|
||||
std::string url = gAgent.getRegion()->getCapability("UpdateAgentLanguage");
|
||||
if (!url.empty())
|
||||
{
|
||||
std::string language = gSavedSettings.getString("Language");
|
||||
if (language == "default")
|
||||
language = gSavedSettings.getString("SystemLanguage");
|
||||
|
||||
body["language"] = language;
|
||||
body["language_is_public"] = gSavedSettings.getBOOL("LanguageIsPublic");
|
||||
|
||||
LLHTTPClient::post(url, body, new LLHTTPClient::Responder);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* @file llagentlanguage.h
|
||||
* @brief Transmit language information to server
|
||||
*
|
||||
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2006-2007, Linden Research, Inc.
|
||||
*
|
||||
* 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://secondlife.com/developers/opensource/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
|
||||
*
|
||||
* 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,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLAGENTLANGUAGE_H
|
||||
#define LL_LLAGENTLANGUAGE_H
|
||||
|
||||
#include "llmemory.h"
|
||||
#include "llevent.h"
|
||||
|
||||
class LLAgentLanguage: public LLSingleton<LLAgentLanguage>, public LLSimpleListener
|
||||
{
|
||||
public:
|
||||
LLAgentLanguage();
|
||||
static bool update();
|
||||
};
|
||||
|
||||
#endif // LL_LLAGENTLANGUAGE_H
|
||||
|
|
@ -45,12 +45,15 @@ LLAgentPilot gAgentPilot;
|
|||
|
||||
BOOL LLAgentPilot::sLoop = TRUE;
|
||||
|
||||
LLAgentPilot::LLAgentPilot()
|
||||
LLAgentPilot::LLAgentPilot() :
|
||||
mNumRuns(-1),
|
||||
mQuitAfterRuns(FALSE),
|
||||
mRecording(FALSE),
|
||||
mLastRecordTime(0.f),
|
||||
mStarted(FALSE),
|
||||
mPlaying(FALSE),
|
||||
mCurrentAction(0)
|
||||
{
|
||||
mRecording = FALSE;
|
||||
mPlaying = FALSE;
|
||||
mStarted = FALSE;
|
||||
mNumRuns = -1;
|
||||
}
|
||||
|
||||
LLAgentPilot::~LLAgentPilot()
|
||||
|
|
|
|||
|
|
@ -1966,11 +1966,12 @@ bool LLAppViewer::initConfiguration()
|
|||
cmd += "linux-crash-logger.bin";
|
||||
#else // LL_SOLARIS
|
||||
cmd += "bin/solaris-crash-logger";
|
||||
#endif
|
||||
#endif // LL_LINUX
|
||||
char* const cmdargv[] =
|
||||
{(char*)cmd.c_str(),
|
||||
(char*)"-previous",
|
||||
NULL};
|
||||
fflush(NULL); // flush all buffers before the child inherits them
|
||||
pid_t pid = fork();
|
||||
if (pid == 0)
|
||||
{ // child
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ LLAssetUploadResponder::LLAssetUploadResponder(const LLSD &post_data,
|
|||
const std::string& file_name)
|
||||
: LLHTTPClient::Responder(),
|
||||
mPostData(post_data),
|
||||
mAssetType(LLAssetType::AT_NONE),
|
||||
mFileName(file_name)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ LLCurrencyUIManager::Impl::Impl(LLPanel& dialog)
|
|||
mError(false),
|
||||
mUserCurrencyBuy(1000), mUserEnteredCurrencyBuy(false),
|
||||
mSiteCurrencyEstimated(false),
|
||||
mSiteCurrencyEstimatedCost(0),
|
||||
mBought(false),
|
||||
mTransactionType(TransactionNone), mTransaction(0),
|
||||
mCurrencyChanged(false)
|
||||
|
|
|
|||
|
|
@ -203,7 +203,8 @@ void LLEventNotifier::notifyCallback(S32 option, void *user_data)
|
|||
|
||||
LLEventNotification::LLEventNotification() :
|
||||
mEventID(0),
|
||||
mEventName("")
|
||||
mEventName(""),
|
||||
mEventDate(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,9 +57,10 @@ public:
|
|||
//
|
||||
std::map<LLUUID, LLFloaterGroupInvite*> LLFloaterGroupInvite::impl::sInstances;
|
||||
|
||||
LLFloaterGroupInvite::impl::impl(const LLUUID& group_id)
|
||||
LLFloaterGroupInvite::impl::impl(const LLUUID& group_id) :
|
||||
mGroupID(group_id),
|
||||
mInvitePanelp(NULL)
|
||||
{
|
||||
mGroupID = group_id;
|
||||
}
|
||||
|
||||
LLFloaterGroupInvite::impl::~impl()
|
||||
|
|
|
|||
|
|
@ -264,6 +264,7 @@ LLFollowCam::LLFollowCam() : LLFollowCamParams()
|
|||
mSubjectRotation = LLQuaternion::DEFAULT;
|
||||
|
||||
mZoomedToMinimumDistance = false;
|
||||
mPitchCos = mPitchSin = 0.f;
|
||||
mPitchSineAndCosineNeedToBeUpdated = true;
|
||||
|
||||
mSimulatedDistance = mDistance;
|
||||
|
|
|
|||
|
|
@ -169,8 +169,6 @@ public:
|
|||
// protected members of FollowCam
|
||||
//------------------------------------------
|
||||
protected:
|
||||
F32 mPositionLagTimeScale; // derived from mPositionLag
|
||||
F32 mFocusLagTimeScale; // derived from mFocusLag
|
||||
F32 mPitchCos; // derived from mPitch
|
||||
F32 mPitchSin; // derived from mPitch
|
||||
LLGlobalVec mSimulatedPositionGlobal; // where the camera is (global coordinates), simulated
|
||||
|
|
|
|||
|
|
@ -73,8 +73,11 @@ const F32 MAX_TIMEOUT = F32_MAX / 2.f;
|
|||
class LLAttention
|
||||
{
|
||||
public:
|
||||
LLAttention(){}
|
||||
LLAttention(F32 timeout, F32 priority, char *name, LLColor3 color) :
|
||||
LLAttention()
|
||||
: mTimeout(0.f),
|
||||
mPriority(0.f)
|
||||
{}
|
||||
LLAttention(F32 timeout, F32 priority, LLString name, LLColor3 color) :
|
||||
mTimeout(timeout), mPriority(priority), mName(name), mColor(color)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1369,7 +1369,9 @@ bool LLFindWearables::operator()(LLInventoryCategory* cat,
|
|||
class LLRightClickInventoryFetchObserver : public LLInventoryFetchObserver
|
||||
{
|
||||
public:
|
||||
LLRightClickInventoryFetchObserver() {};
|
||||
LLRightClickInventoryFetchObserver() :
|
||||
mCopyItems(false)
|
||||
{ };
|
||||
LLRightClickInventoryFetchObserver(const LLUUID& cat_id, bool copy_items) :
|
||||
mCatID(cat_id),
|
||||
mCopyItems(copy_items)
|
||||
|
|
@ -2237,7 +2239,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
|
|||
if(accept && drop)
|
||||
{
|
||||
if (inv_item->getType() == LLAssetType::AT_GESTURE
|
||||
&& gGestureManager.isGestureActive(inv_item->getUUID()))
|
||||
&& gGestureManager.isGestureActive(inv_item->getUUID()) && move_is_into_trash)
|
||||
{
|
||||
gGestureManager.deactivateGesture(inv_item->getUUID());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ void LLPanelGroup::updateTabVisibility()
|
|||
LLPanelGroupTab* panelp =
|
||||
(LLPanelGroupTab*) mTabContainer->getPanelByIndex(i);
|
||||
|
||||
BOOL visible = panelp->isVisibleByAgent(&gAgent);
|
||||
BOOL visible = panelp->isVisibleByAgent(&gAgent) || gAgent.isGodlike();
|
||||
mTabContainer->enableTabButton(i, visible);
|
||||
|
||||
if ( !visible && mCurrentTab == panelp )
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ bool agentCanRemoveFromRole(const LLUUID& group_id,
|
|||
bool agentCanAddToRole(const LLUUID& group_id,
|
||||
const LLUUID& role_id)
|
||||
{
|
||||
if (gAgent.isGodlike())
|
||||
return true;
|
||||
|
||||
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(group_id);
|
||||
if (!gdatap)
|
||||
{
|
||||
|
|
@ -177,9 +180,6 @@ BOOL LLPanelGroupRoles::postBuild()
|
|||
|
||||
BOOL LLPanelGroupRoles::isVisibleByAgent(LLAgent* agentp)
|
||||
{
|
||||
if (agentp->isGodlike())
|
||||
return TRUE;
|
||||
|
||||
/* This power was removed to make group roles simpler
|
||||
return agentp->hasPowerInGroup(mGroupID,
|
||||
GP_ROLE_CREATE |
|
||||
|
|
@ -1131,6 +1131,9 @@ void LLPanelGroupMembersSubTab::handleMemberSelect()
|
|||
}
|
||||
mAssignedRolesList->setEnabled(TRUE);
|
||||
|
||||
if (gAgent.isGodlike())
|
||||
can_eject_members = TRUE;
|
||||
|
||||
if (!can_eject_members && !member_is_owner)
|
||||
{
|
||||
// Maybe we can eject them because we are an owner...
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ BOOL LLPanelPermissions::postBuild()
|
|||
|
||||
this->childSetCommitCallback("checkbox for sale",LLPanelPermissions::onCommitSaleInfo,this);
|
||||
|
||||
this->childSetCommitCallback("EdCost",LLPanelPermissions::onCommitSaleInfo,this);
|
||||
this->childSetPrevalidate("EdCost",LLLineEditor::prevalidateNonNegativeS32);
|
||||
this->childSetCommitCallback("Edit Cost",LLPanelPermissions::onCommitSaleInfo,this);
|
||||
this->childSetPrevalidate("Edit Cost",LLLineEditor::prevalidateNonNegativeS32);
|
||||
|
||||
this->childSetCommitCallback("sale type",LLPanelPermissions::onCommitSaleType,this);
|
||||
|
||||
|
|
@ -229,9 +229,10 @@ void LLPanelPermissions::refresh()
|
|||
RadioSaleType->setEnabled(FALSE);
|
||||
}
|
||||
|
||||
childSetEnabled("Price: L$",false);
|
||||
childSetText("EdCost",LLString::null);
|
||||
childSetEnabled("EdCost",false);
|
||||
childSetEnabled("Cost",false);
|
||||
childSetText("Cost",LLString(childGetText("Cost Default")));
|
||||
childSetText("Edit Cost",LLString::null);
|
||||
childSetEnabled("Edit Cost",false);
|
||||
|
||||
childSetEnabled("label click action",false);
|
||||
LLComboBox* ComboClickAction = getChild<LLComboBox>("clickaction");
|
||||
|
|
@ -405,56 +406,92 @@ void LLPanelPermissions::refresh()
|
|||
childSetText("prim info",object_info_string);
|
||||
childSetEnabled("prim info",true);
|
||||
|
||||
S32 price;
|
||||
BOOL is_for_sale = LLSelectMgr::getInstance()->selectIsForSale(price);
|
||||
if (!is_for_sale)
|
||||
{
|
||||
price = DEFAULT_PRICE;
|
||||
}
|
||||
S32 total_sale_price = 0;
|
||||
S32 individual_sale_price = 0;
|
||||
BOOL is_for_sale_mixed = FALSE;
|
||||
BOOL is_sale_price_mixed = FALSE;
|
||||
U32 num_for_sale = FALSE;
|
||||
LLSelectMgr::getInstance()->selectGetAggregateSaleInfo(num_for_sale,
|
||||
is_for_sale_mixed,
|
||||
is_sale_price_mixed,
|
||||
total_sale_price,
|
||||
individual_sale_price);
|
||||
|
||||
BOOL self_owned = (gAgent.getID() == mOwnerID);
|
||||
BOOL group_owned = LLSelectMgr::getInstance()->selectIsGroupOwned() ;
|
||||
BOOL public_owned = (mOwnerID.isNull() && !LLSelectMgr::getInstance()->selectIsGroupOwned());
|
||||
BOOL can_transfer = LLSelectMgr::getInstance()->selectGetRootsTransfer();
|
||||
BOOL can_copy = LLSelectMgr::getInstance()->selectGetRootsCopy();
|
||||
const BOOL self_owned = (gAgent.getID() == mOwnerID);
|
||||
const BOOL group_owned = LLSelectMgr::getInstance()->selectIsGroupOwned() ;
|
||||
const BOOL public_owned = (mOwnerID.isNull() && !LLSelectMgr::getInstance()->selectIsGroupOwned());
|
||||
const BOOL can_transfer = LLSelectMgr::getInstance()->selectGetRootsTransfer();
|
||||
const BOOL can_copy = LLSelectMgr::getInstance()->selectGetRootsCopy();
|
||||
|
||||
if(!owners_identical)
|
||||
{
|
||||
childSetEnabled("Price: L$",false);
|
||||
childSetText("EdCost",LLString::null);
|
||||
childSetEnabled("EdCost",false);
|
||||
childSetEnabled("Cost",false);
|
||||
childSetText("Edit Cost",LLString::null);
|
||||
childSetEnabled("Edit Cost",false);
|
||||
}
|
||||
// You own these objects.
|
||||
else if(self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
|
||||
{
|
||||
LLLineEditor* EditPrice = getChild<LLLineEditor>("EdCost");
|
||||
if(keyboard_focus_view != EditPrice)
|
||||
// If there are multiple items for sale then set text to PRICE PER UNIT.
|
||||
if (num_for_sale > 1)
|
||||
{
|
||||
childSetText("EdCost",llformat("%d",price));
|
||||
}
|
||||
if(is_for_sale && is_one_object && can_transfer)
|
||||
{
|
||||
childSetEnabled("Price: L$",true);
|
||||
childSetEnabled("EdCost",true);
|
||||
childSetText("Cost",childGetText("Cost Per Unit"));
|
||||
}
|
||||
else
|
||||
{
|
||||
childSetEnabled("Price: L$",false);
|
||||
childSetEnabled("EdCost",false);
|
||||
childSetText("Cost",childGetText("Cost Default"));
|
||||
}
|
||||
|
||||
LLLineEditor *editPrice = getChild<LLLineEditor>("Edit Cost");
|
||||
if(keyboard_focus_view != editPrice)
|
||||
{
|
||||
// If the sale price is mixed then set the cost to MIXED, otherwise
|
||||
// set to the actual cost.
|
||||
if (num_for_sale > 0 && is_for_sale_mixed)
|
||||
{
|
||||
childSetText("Edit Cost",childGetText("Sale Mixed"));
|
||||
}
|
||||
else if (num_for_sale > 0 && is_sale_price_mixed)
|
||||
{
|
||||
childSetText("Edit Cost",childGetText("Cost Mixed"));
|
||||
}
|
||||
else
|
||||
{
|
||||
childSetText("Edit Cost",llformat("%d",individual_sale_price));
|
||||
}
|
||||
}
|
||||
// The edit fields are only enabled if you can sell this object
|
||||
// and the sale price is not mixed.
|
||||
bool enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : false;
|
||||
childSetEnabled("Cost",enable_edit);
|
||||
childSetEnabled("Edit Cost",enable_edit);
|
||||
}
|
||||
// Someone, not you, owns these objects.
|
||||
else if(!public_owned)
|
||||
{
|
||||
// ...someone, not you, owns it
|
||||
childSetEnabled("Price: L$",false);
|
||||
childSetText("EdCost",llformat("%d",price));
|
||||
childSetEnabled("EdCost",false);
|
||||
childSetEnabled("Cost",false);
|
||||
childSetEnabled("Edit Cost",false);
|
||||
|
||||
// Don't show a price if none of the items are for sale.
|
||||
if (num_for_sale)
|
||||
childSetText("Edit Cost",llformat("%d",total_sale_price));
|
||||
else
|
||||
childSetText("Edit Cost",LLString::null);
|
||||
|
||||
// If multiple items are for sale, set text to TOTAL PRICE.
|
||||
if (num_for_sale > 1)
|
||||
childSetText("Cost",childGetText("Cost Total"));
|
||||
else
|
||||
childSetText("Cost",childGetText("Cost Default"));
|
||||
}
|
||||
// This is a public object.
|
||||
else
|
||||
{
|
||||
// ...public object
|
||||
childSetEnabled("Price: L$",false);
|
||||
childSetText("EdCost",LLString::null);
|
||||
childSetEnabled("EdCost",false);
|
||||
childSetEnabled("Cost",false);
|
||||
childSetText("Cost",childGetText("Cost Default"));
|
||||
|
||||
childSetText("Edit Cost",LLString::null);
|
||||
childSetEnabled("Edit Cost",false);
|
||||
}
|
||||
|
||||
// Enable and disable the permissions checkboxes
|
||||
|
|
@ -590,8 +627,11 @@ void LLPanelPermissions::refresh()
|
|||
|
||||
if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))
|
||||
{
|
||||
childSetEnabled("checkbox for sale", can_transfer || (!can_transfer && is_for_sale));
|
||||
childSetEnabled("sale type",is_for_sale && can_transfer);
|
||||
childSetEnabled("checkbox for sale", can_transfer || (!can_transfer && num_for_sale));
|
||||
// Set the checkbox to tentative if the prices of each object selected
|
||||
// are not the same.
|
||||
childSetTentative("checkbox for sale", is_for_sale_mixed);
|
||||
childSetEnabled("sale type",num_for_sale && can_transfer && !is_sale_price_mixed);
|
||||
|
||||
childSetEnabled("Next owner can:", TRUE);
|
||||
childSetEnabled("checkbox next owner can modify",base_mask_on & PERM_MODIFY);
|
||||
|
|
@ -733,21 +773,23 @@ void LLPanelPermissions::refresh()
|
|||
if (valid_sale_info)
|
||||
{
|
||||
RadioSaleType->setSelectedIndex((S32)sale_type - 1);
|
||||
RadioSaleType->setTentative(FALSE); // unfortunately this doesn't do anything at the moment.
|
||||
}
|
||||
else
|
||||
{
|
||||
// default option is sell copy, determined to be safest
|
||||
RadioSaleType->setSelectedIndex((S32)LLSaleInfo::FS_COPY - 1);
|
||||
RadioSaleType->setTentative(TRUE); // unfortunately this doesn't do anything at the moment.
|
||||
}
|
||||
}
|
||||
|
||||
childSetValue("checkbox for sale", is_for_sale);
|
||||
childSetValue("checkbox for sale", num_for_sale != 0);
|
||||
|
||||
// HACK: There are some old objects in world that are set for sale,
|
||||
// but are no-transfer. We need to let users turn for-sale off, but only
|
||||
// if for-sale is set.
|
||||
bool cannot_actually_sell = !can_transfer || (!can_copy && sale_type == LLSaleInfo::FS_COPY);
|
||||
if (is_for_sale && has_change_sale_ability && cannot_actually_sell)
|
||||
if (num_for_sale && has_change_sale_ability && cannot_actually_sell)
|
||||
{
|
||||
childSetEnabled("checkbox for sale", true);
|
||||
}
|
||||
|
|
@ -971,9 +1013,10 @@ void LLPanelPermissions::setAllSaleInfo()
|
|||
llinfos << "LLPanelPermissions::setAllSaleInfo()" << llendl;
|
||||
LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_NOT;
|
||||
|
||||
LLCheckBoxCtrl* mCheckPurchase = getChild<LLCheckBoxCtrl>("checkbox for sale");
|
||||
|
||||
if(mCheckPurchase && mCheckPurchase->get())
|
||||
LLCheckBoxCtrl *checkPurchase = getChild<LLCheckBoxCtrl>("checkbox for sale");
|
||||
|
||||
// Set the sale type if the object(s) are for sale.
|
||||
if(checkPurchase && checkPurchase->get())
|
||||
{
|
||||
LLRadioGroup* RadioSaleType = getChild<LLRadioGroup>("sale type");
|
||||
if(RadioSaleType)
|
||||
|
|
@ -995,23 +1038,37 @@ void LLPanelPermissions::setAllSaleInfo()
|
|||
}
|
||||
}
|
||||
}
|
||||
LLLineEditor* mEditPrice = getChild<LLLineEditor>("EdCost");
|
||||
|
||||
S32 price = -1;
|
||||
if(mEditPrice)
|
||||
|
||||
LLLineEditor *editPrice = getChild<LLLineEditor>("Edit Cost");
|
||||
if (editPrice)
|
||||
{
|
||||
price = atoi(mEditPrice->getText().c_str());
|
||||
// Don't extract the price if it's labeled as MIXED or is empty.
|
||||
const char *editPriceString = editPrice->getText().c_str();
|
||||
if (0 != strcmp(editPriceString,childGetText("Cost Mixed").c_str()) &&
|
||||
0 != strcmp(editPriceString,""))
|
||||
{
|
||||
price = atoi(editPriceString);
|
||||
}
|
||||
else
|
||||
{
|
||||
price = DEFAULT_PRICE;
|
||||
}
|
||||
}
|
||||
// Invalid data - turn off the sale
|
||||
// If somehow an invalid price, turn the sale off.
|
||||
if (price < 0)
|
||||
{
|
||||
sale_type = LLSaleInfo::FS_NOT;
|
||||
price = 0;
|
||||
}
|
||||
|
||||
// Force the sale price of not-for-sale items to DEFAULT_PRICE.
|
||||
if (sale_type == LLSaleInfo::FS_NOT)
|
||||
{
|
||||
price = DEFAULT_PRICE;
|
||||
}
|
||||
// Pack up the sale info and send the update.
|
||||
LLSaleInfo sale_info(sale_type, price);
|
||||
LLSelectMgr::getInstance()->selectionSetObjectSaleInfo(sale_info);
|
||||
|
||||
|
||||
// If turned off for-sale, make sure click-action buy is turned
|
||||
// off as well
|
||||
if (sale_type == LLSaleInfo::FS_NOT)
|
||||
|
|
|
|||
|
|
@ -687,6 +687,12 @@ LLPolyMesh::LLPolyMesh(LLPolyMeshSharedData *shared_data, LLPolyMesh *reference_
|
|||
mAvatarp = NULL;
|
||||
mVertexData = NULL;
|
||||
|
||||
mCurVertexCount = 0;
|
||||
mFaceIndexCount = 0;
|
||||
mFaceIndexOffset = 0;
|
||||
mFaceVertexCount = 0;
|
||||
mFaceVertexOffset = 0;
|
||||
|
||||
if (shared_data->isLOD() && reference_mesh)
|
||||
{
|
||||
mCoords = reference_mesh->mCoords;
|
||||
|
|
|
|||
|
|
@ -2827,27 +2827,53 @@ void LLSelectMgr::selectForceDelete()
|
|||
SEND_ONLY_ROOTS);
|
||||
}
|
||||
|
||||
|
||||
// returns TRUE if anything is for sale. calculates the total price
|
||||
// and stores that value in price.
|
||||
BOOL LLSelectMgr::selectIsForSale(S32& price)
|
||||
void LLSelectMgr::selectGetAggregateSaleInfo(U32 &num_for_sale,
|
||||
BOOL &is_for_sale_mixed,
|
||||
BOOL &is_sale_price_mixed,
|
||||
S32 &total_sale_price,
|
||||
S32 &individual_sale_price)
|
||||
{
|
||||
BOOL any_for_sale = FALSE;
|
||||
price = 0;
|
||||
num_for_sale = 0;
|
||||
is_for_sale_mixed = FALSE;
|
||||
is_sale_price_mixed = FALSE;
|
||||
total_sale_price = 0;
|
||||
individual_sale_price = 0;
|
||||
|
||||
|
||||
// Empty set.
|
||||
if (getSelection()->root_begin() == getSelection()->root_end())
|
||||
return;
|
||||
|
||||
LLSelectNode *node = *(getSelection()->root_begin());
|
||||
const BOOL first_node_for_sale = node->mSaleInfo.isForSale();
|
||||
const S32 first_node_sale_price = node->mSaleInfo.getSalePrice();
|
||||
|
||||
for (LLObjectSelection::root_iterator iter = getSelection()->root_begin();
|
||||
iter != getSelection()->root_end(); iter++)
|
||||
{
|
||||
LLSelectNode* node = *iter;
|
||||
if (node->mSaleInfo.isForSale())
|
||||
const BOOL node_for_sale = node->mSaleInfo.isForSale();
|
||||
const S32 node_sale_price = node->mSaleInfo.getSalePrice();
|
||||
|
||||
// Set mixed if the fields don't match the first node's fields.
|
||||
if (node_for_sale != first_node_for_sale)
|
||||
is_for_sale_mixed = TRUE;
|
||||
if (node_sale_price != first_node_sale_price)
|
||||
is_sale_price_mixed = TRUE;
|
||||
|
||||
if (node_for_sale)
|
||||
{
|
||||
price += node->mSaleInfo.getSalePrice();
|
||||
any_for_sale = TRUE;
|
||||
total_sale_price += node_sale_price;
|
||||
num_for_sale ++;
|
||||
}
|
||||
}
|
||||
|
||||
return any_for_sale;
|
||||
|
||||
|
||||
individual_sale_price = first_node_sale_price;
|
||||
if (is_for_sale_mixed)
|
||||
{
|
||||
is_sale_price_mixed = TRUE;
|
||||
individual_sale_price = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// returns TRUE if all nodes are valid. method also stores an
|
||||
|
|
@ -3503,8 +3529,6 @@ void LLSelectMgr::selectionSetObjectCategory(const LLCategory& category)
|
|||
|
||||
void LLSelectMgr::selectionSetObjectSaleInfo(const LLSaleInfo& sale_info)
|
||||
{
|
||||
// Only one sale info at a time for now
|
||||
if(mSelectedObjects->getRootObjectCount() != 1) return;
|
||||
sendListToRegions("ObjectSaleInfo",
|
||||
packAgentAndSessionID,
|
||||
packObjectSaleInfo,
|
||||
|
|
|
|||
|
|
@ -558,10 +558,14 @@ public:
|
|||
// returns TRUE if all the nodes are valid. Accumulates
|
||||
// permissions in the parameter.
|
||||
BOOL selectGetPermissions(LLPermissions& perm);
|
||||
|
||||
// returns TRUE if anything is for sale. calculates the total
|
||||
// price and stores that value in price.
|
||||
BOOL selectIsForSale(S32& price);
|
||||
|
||||
// Get a bunch of useful sale information for the object(s) selected.
|
||||
// "_mixed" is true if not all objects have the same setting.
|
||||
void selectGetAggregateSaleInfo(U32 &num_for_sale,
|
||||
BOOL &is_for_sale_mixed,
|
||||
BOOL &is_sale_price_mixed,
|
||||
S32 &total_sale_price,
|
||||
S32 &individual_sale_price);
|
||||
|
||||
// returns TRUE if all nodes are valid.
|
||||
BOOL selectGetCategory(LLCategory& category);
|
||||
|
|
|
|||
|
|
@ -59,30 +59,18 @@ LLVector3 LLSprite::sNormal(0.0f,0.0f,0.0f);
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
// A simple initialization
|
||||
LLSprite::LLSprite(const LLUUID &image_uuid)
|
||||
LLSprite::LLSprite(const LLUUID &image_uuid) :
|
||||
mImageID(image_uuid),
|
||||
mImagep(NULL),
|
||||
mPitch(0.f),
|
||||
mYaw(0.f),
|
||||
mPosition(0.0f, 0.0f, 0.0f),
|
||||
mFollow(TRUE),
|
||||
mUseCameraUp(TRUE),
|
||||
mColor(0.5f, 0.5f, 0.5f, 1.0f),
|
||||
mTexMode(GL_REPLACE)
|
||||
{
|
||||
mImageID = image_uuid;
|
||||
mImagep = NULL;
|
||||
|
||||
setSize(1.0f, 1.0f);
|
||||
setPosition(LLVector3(0.0f, 0.0f, 0.0f));
|
||||
mTexMode = GL_REPLACE;
|
||||
mColor.setVec(0.5f, 0.5f, 0.5f, 1.0f);
|
||||
mFollow = TRUE;
|
||||
mUseCameraUp = TRUE;
|
||||
}
|
||||
|
||||
LLSprite::LLSprite(const LLUUID &image_uuid, const F32 width, const F32 height, const BOOL b_usemipmap)
|
||||
{
|
||||
mImageID = image_uuid;
|
||||
mImagep = NULL;
|
||||
|
||||
setSize(width,height);
|
||||
setPosition(LLVector3(0.0f, 0.0f, 0.0f));
|
||||
mTexMode = GL_REPLACE;
|
||||
mColor.setVec(0.5f, 0.5f, 0.5f, 1.0f);
|
||||
mFollow = TRUE;
|
||||
mUseCameraUp = TRUE;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ class LLSprite
|
|||
{
|
||||
public:
|
||||
LLSprite(const LLUUID &image_uuid);
|
||||
LLSprite(const LLUUID &image_uuid, const F32 width, const F32 height, const BOOL b_usemipmap = TRUE);
|
||||
~LLSprite();
|
||||
|
||||
void render(LLViewerCamera * camerap);
|
||||
|
|
|
|||
|
|
@ -174,6 +174,11 @@
|
|||
#include "llpostprocess.h"
|
||||
#include "llwlparammanager.h"
|
||||
#include "llwaterparammanager.h"
|
||||
#include "llagentlanguage.h"
|
||||
|
||||
#if LL_LIBXUL_ENABLED
|
||||
#include "llmozlib.h"
|
||||
#endif // LL_LIBXUL_ENABLED
|
||||
|
||||
#if LL_WINDOWS
|
||||
#include "llwindebug.h"
|
||||
|
|
@ -469,7 +474,7 @@ BOOL idle_startup()
|
|||
}
|
||||
else
|
||||
{
|
||||
LLAppViewer::instance()->earlyExit("Unable to initialize communications.");
|
||||
LLAppViewer::instance()->earlyExit("Message Template " + message_template_path + " not found.");
|
||||
}
|
||||
|
||||
if(gMessageSystem && gMessageSystem->isOK())
|
||||
|
|
@ -2147,6 +2152,10 @@ BOOL idle_startup()
|
|||
// JC - 7/20/2002
|
||||
gViewerWindow->sendShapeToSim();
|
||||
|
||||
// Inform simulator of our language preference
|
||||
LLAgentLanguage::update();
|
||||
|
||||
|
||||
// Ignore stipend information for now. Money history is on the web site.
|
||||
// if needed, show the L$ history window
|
||||
//if (stipend_since_login && !gNoRender)
|
||||
|
|
|
|||
|
|
@ -1,33 +1,33 @@
|
|||
/**
|
||||
* @file llstatusbar.cpp
|
||||
* @brief LLStatusBar class implementation
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2002-2007, Linden Research, Inc.
|
||||
*
|
||||
* 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://secondlife.com/developers/opensource/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
|
||||
*
|
||||
* 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,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
* @file llstatusbar.cpp
|
||||
* @brief LLStatusBar class implementation
|
||||
*
|
||||
* $LicenseInfo:firstyear=2002&license=viewergpl$
|
||||
*
|
||||
* Copyright (c) 2002-2007, Linden Research, Inc.
|
||||
*
|
||||
* 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://secondlife.com/developers/opensource/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
|
||||
*
|
||||
* 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,
|
||||
* COMPLETENESS OR PERFORMANCE.
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
|
|
@ -121,10 +121,10 @@ const U32 LLStatusBar::MAX_DATE_STRING_LENGTH = 2000;
|
|||
|
||||
LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)
|
||||
: LLPanel(name, LLRect(), FALSE), // not mouse opaque
|
||||
mBalance(0),
|
||||
mHealth(100),
|
||||
mSquareMetersCredit(0),
|
||||
mSquareMetersCommitted(0)
|
||||
mBalance(0),
|
||||
mHealth(100),
|
||||
mSquareMetersCredit(0),
|
||||
mSquareMetersCommitted(0)
|
||||
{
|
||||
// status bar can possible overlay menus?
|
||||
setMouseOpaque(FALSE);
|
||||
|
|
@ -150,7 +150,7 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)
|
|||
|
||||
mTextHealth = getChild<LLTextBox>("HealthText" );
|
||||
mTextTime = getChild<LLTextBox>("TimeText" );
|
||||
|
||||
|
||||
childSetAction("scriptout", onClickScriptDebug, this);
|
||||
childSetAction("health", onClickHealth, this);
|
||||
childSetAction("no_fly", onClickFly, this);
|
||||
|
|
@ -233,8 +233,8 @@ void LLStatusBar::draw()
|
|||
if (isBackgroundVisible())
|
||||
{
|
||||
gl_drop_shadow(0, getRect().getHeight(), getRect().getWidth(), 0,
|
||||
LLUI::sColorsGroup->getColor("ColorDropShadow"),
|
||||
LLUI::sConfigGroup->getS32("DropShadowFloater") );
|
||||
LLUI::sColorsGroup->getColor("ColorDropShadow"),
|
||||
LLUI::sConfigGroup->getS32("DropShadowFloater") );
|
||||
}
|
||||
LLPanel::draw();
|
||||
}
|
||||
|
|
@ -252,7 +252,7 @@ void LLStatusBar::refresh()
|
|||
mSGBandwidth->setThreshold(2, bwtotal);
|
||||
|
||||
// *TODO: Localize / translate time
|
||||
|
||||
|
||||
// Get current UTC time, adjusted for the user's clock
|
||||
// being off.
|
||||
U32 utc_time;
|
||||
|
|
@ -284,23 +284,23 @@ void LLStatusBar::refresh()
|
|||
if (hour == 0) hour = 12;
|
||||
std::ostringstream t;
|
||||
t << std::setfill(' ') << std::setw(2) << hour << ":"
|
||||
<< std::setfill('0') << std::setw(2) << min
|
||||
<< " " << am_pm << " " << tz;
|
||||
<< std::setfill('0') << std::setw(2) << min
|
||||
<< " " << am_pm << " " << tz;
|
||||
mTextTime->setText(t.str());
|
||||
|
||||
// Year starts at 1900, set the tooltip to have the date
|
||||
std::ostringstream date;
|
||||
date << sDays[internal_time->tm_wday] << ", "
|
||||
<< std::setfill('0') << std::setw(2) << internal_time->tm_mday << " "
|
||||
<< sMonths[internal_time->tm_mon] << " "
|
||||
<< internal_time->tm_year + 1900;
|
||||
<< std::setfill('0') << std::setw(2) << internal_time->tm_mday << " "
|
||||
<< sMonths[internal_time->tm_mon] << " "
|
||||
<< internal_time->tm_year + 1900;
|
||||
mTextTime->setToolTip(date.str());
|
||||
|
||||
LLRect r;
|
||||
const S32 MENU_RIGHT = gMenuBarView->getRightmostMenuEdge();
|
||||
S32 x = MENU_RIGHT + MENU_PARCEL_SPACING;
|
||||
S32 y = 0;
|
||||
|
||||
|
||||
bool search_visible = gSavedSettings.getBOOL("ShowSearchBar");
|
||||
|
||||
// reshape menu bar to its content's width
|
||||
|
|
@ -394,8 +394,8 @@ void LLStatusBar::refresh()
|
|||
BOOL no_scripts = FALSE;
|
||||
if((region
|
||||
&& ((region->getRegionFlags() & REGION_FLAGS_SKIP_SCRIPTS)
|
||||
|| (region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS)))
|
||||
|| (parcel && !parcel->getAllowOtherScripts()))
|
||||
|| (region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS)))
|
||||
|| (parcel && !parcel->getAllowOtherScripts()))
|
||||
{
|
||||
no_scripts = TRUE;
|
||||
}
|
||||
|
|
@ -487,15 +487,15 @@ void LLStatusBar::refresh()
|
|||
|
||||
mRegionDetails.mTime = mTextTime->getText();
|
||||
mRegionDetails.mBalance = mBalance;
|
||||
mRegionDetails.mAccesString = region->getSimAccessString();
|
||||
mRegionDetails.mAccessString = region->getSimAccessString();
|
||||
mRegionDetails.mPing = region->getNetDetailsForLCD();
|
||||
if (parcel && !parcel->getName().empty())
|
||||
if (parcel)
|
||||
{
|
||||
location_name = region->getName()
|
||||
+ llformat(" %d, %d, %d (%s) - %s",
|
||||
pos_x, pos_y, pos_z,
|
||||
region->getSimAccessString(),
|
||||
parcel->getName().c_str());
|
||||
pos_x, pos_y, pos_z,
|
||||
region->getSimAccessString(),
|
||||
parcel->getName().c_str());
|
||||
|
||||
// keep these around for the LCD to use
|
||||
mRegionDetails.mRegionName = region->getName();
|
||||
|
|
@ -503,6 +503,7 @@ void LLStatusBar::refresh()
|
|||
mRegionDetails.mX = pos_x;
|
||||
mRegionDetails.mY = pos_y;
|
||||
mRegionDetails.mZ = pos_z;
|
||||
|
||||
mRegionDetails.mArea = parcel->getArea();
|
||||
mRegionDetails.mForSale = parcel->getForSale();
|
||||
mRegionDetails.mTraffic = LLViewerParcelMgr::getInstance()->getDwelling();
|
||||
|
|
@ -557,7 +558,7 @@ void LLStatusBar::refresh()
|
|||
// keep these around for the LCD to use
|
||||
mRegionDetails.mRegionName = "Unknown";
|
||||
mRegionDetails.mParcelName = "Unknown";
|
||||
mRegionDetails.mAccesString = "Unknown";
|
||||
mRegionDetails.mAccessString = "Unknown";
|
||||
mRegionDetails.mX = 0;
|
||||
mRegionDetails.mY = 0;
|
||||
mRegionDetails.mZ = 0;
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public:
|
|||
LLRegionDetails() :
|
||||
mRegionName("Unknown"),
|
||||
mParcelName("Unknown"),
|
||||
mAccesString("Unknown"),
|
||||
mAccessString("Unknown"),
|
||||
mX(0),
|
||||
mY(0),
|
||||
mZ(0),
|
||||
|
|
@ -68,7 +68,7 @@ public:
|
|||
}
|
||||
std::string mRegionName;
|
||||
std::string mParcelName;
|
||||
std::string mAccesString;
|
||||
std::string mAccessString;
|
||||
S32 mX;
|
||||
S32 mY;
|
||||
S32 mZ;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,9 @@ LLSurface::LLSurface(U32 type, LLViewerRegion *regionp) :
|
|||
mGridsPerEdge(0),
|
||||
mOOGridsPerEdge(0.f),
|
||||
mPatchesPerEdge(0),
|
||||
mNumberOfPatches(0),
|
||||
mType(type),
|
||||
mDetailTextureScale(0.f),
|
||||
mOriginGlobal(0.0, 0.0, 0.0),
|
||||
mSTexturep(NULL),
|
||||
mWaterTexturep(NULL),
|
||||
|
|
|
|||
|
|
@ -217,9 +217,6 @@ protected:
|
|||
F32 mMetersPerGrid; // Converts (i,j) indecies to distance
|
||||
F32 mMetersPerEdge; // = mMetersPerGrid * (mGridsPerEdge-1)
|
||||
|
||||
F32 mSurfaceTexScale; // Scale factors for automatic tex coord generation
|
||||
F32 mDetailTexScale;
|
||||
|
||||
LLPatchVertexArray mPVArray;
|
||||
|
||||
BOOL mHasZData; // We've received any patch data for this surface.
|
||||
|
|
|
|||
|
|
@ -52,28 +52,29 @@ extern U64 gFrameTime;
|
|||
extern LLPipeline gPipeline;
|
||||
|
||||
LLSurfacePatch::LLSurfacePatch() :
|
||||
mDataZ(NULL),
|
||||
mVObjp(NULL),
|
||||
mLastUpdateTime(0),
|
||||
mSurfacep(NULL)
|
||||
{
|
||||
// This flag is used to communicate between adjacent surfaces and is set
|
||||
// to non-zero values by higher classes.
|
||||
mConnectedEdge = NO_EDGE;
|
||||
mCenterRegion = LLVector3(0.f, 0.f, 0.f);
|
||||
mOriginRegion = LLVector3(0.f, 0.f, 0.f);
|
||||
mHasReceivedData = FALSE;
|
||||
mMinZ = 0.0f;
|
||||
mMaxZ = 0.0f;
|
||||
mMeanZ = 0.0f;
|
||||
mMinComposition = 0.f;
|
||||
mMeanComposition = 0.f;
|
||||
mMaxComposition = 0.f;
|
||||
mRadius = 0.f;
|
||||
mDirty = FALSE;
|
||||
mDirtyZStats = TRUE;
|
||||
mHeightsGenerated = FALSE;
|
||||
|
||||
mHasReceivedData(FALSE),
|
||||
mSTexUpdate(FALSE),
|
||||
mDirty(FALSE),
|
||||
mDirtyZStats(TRUE),
|
||||
mHeightsGenerated(FALSE),
|
||||
mDataOffset(0),
|
||||
mDataZ(NULL),
|
||||
mVObjp(NULL),
|
||||
mOriginRegion(0.f, 0.f, 0.f),
|
||||
mCenterRegion(0.f, 0.f, 0.f),
|
||||
mMinZ(0.f),
|
||||
mMaxZ(0.f),
|
||||
mMeanZ(0.f),
|
||||
mRadius(0.f),
|
||||
mMinComposition(0.f),
|
||||
mMaxComposition(0.f),
|
||||
mMeanComposition(0.f),
|
||||
// This flag is used to communicate between adjacent surfaces and is
|
||||
// set to non-zero values by higher classes.
|
||||
mConnectedEdge(NO_EDGE),
|
||||
mLastUpdateTime(0),
|
||||
mSurfacep(NULL)
|
||||
{
|
||||
S32 i;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,9 +44,17 @@ class LLAgent;
|
|||
|
||||
// A patch shouldn't know about its visibility since that really depends on the
|
||||
// camera that is looking (or not looking) at it. So, anything about a patch
|
||||
// that is specific to a camera should be in the struct below.
|
||||
struct LLPatchVisibilityInfo
|
||||
// that is specific to a camera should be in the class below.
|
||||
class LLPatchVisibilityInfo
|
||||
{
|
||||
public:
|
||||
LLPatchVisibilityInfo() :
|
||||
mbIsVisible(FALSE),
|
||||
mDistance(0.f),
|
||||
mRenderLevel(0),
|
||||
mRenderStride(0) { };
|
||||
~LLPatchVisibilityInfo() { };
|
||||
|
||||
BOOL mbIsVisible;
|
||||
F32 mDistance; // Distance from camera
|
||||
S32 mRenderLevel;
|
||||
|
|
@ -153,7 +161,7 @@ protected:
|
|||
// Pointer to the LLVOSurfacePatch object which is used in the new renderer.
|
||||
LLPointer<LLVOSurfacePatch> mVObjp;
|
||||
|
||||
// All of the camera-dependent stuff should be in its own structure...
|
||||
// All of the camera-dependent stuff should be in its own class...
|
||||
LLPatchVisibilityInfo mVisInfo;
|
||||
|
||||
// pointers to beginnings of patch data fields
|
||||
|
|
|
|||
|
|
@ -81,9 +81,16 @@ LLToolGrab::LLToolGrab( LLToolComposite* composite )
|
|||
mHitLand(FALSE),
|
||||
mHitObjectID(),
|
||||
mGrabObject( NULL ),
|
||||
mLastMouseX(0),
|
||||
mLastMouseY(0),
|
||||
mMouseDownX( -1 ),
|
||||
mMouseDownY( -1 ),
|
||||
mMouseMask(0),
|
||||
mAccumDeltaX(0),
|
||||
mAccumDeltaY(0),
|
||||
mHasMoved( FALSE ),
|
||||
mOutsideSlop(FALSE),
|
||||
mDeselectedThisClick(FALSE),
|
||||
mSpinGrabbing( FALSE ),
|
||||
mSpinRotation(),
|
||||
mHideBuildHighlight(FALSE)
|
||||
|
|
|
|||
|
|
@ -90,7 +90,8 @@ LLTracker::LLTracker()
|
|||
mHasLandmarkPosition(FALSE),
|
||||
mLandmarkHasBeenVisited(FALSE),
|
||||
mTrackedLocationName( "" ),
|
||||
mIsTrackingLocation(FALSE)
|
||||
mIsTrackingLocation(FALSE),
|
||||
mHasReachedLocation(FALSE)
|
||||
{ }
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -564,7 +564,8 @@ void bind_keyboard_functions()
|
|||
gViewerKeyboard.bindNamedFunction("start_gesture", start_gesture);
|
||||
}
|
||||
|
||||
LLViewerKeyboard::LLViewerKeyboard()
|
||||
LLViewerKeyboard::LLViewerKeyboard() :
|
||||
mNamedFunctionCount(0)
|
||||
{
|
||||
for (S32 i = 0; i < MODE_COUNT; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -40,6 +40,9 @@ const S32 MAX_KEY_BINDINGS = 128; // was 60
|
|||
class LLNamedFunction
|
||||
{
|
||||
public:
|
||||
LLNamedFunction() : mName(NULL), mFunction(NULL) { };
|
||||
~LLNamedFunction() { };
|
||||
|
||||
const char *mName;
|
||||
LLKeyFunc mFunction;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1504,6 +1504,7 @@ void LLViewerObjectList::findOrphans(LLViewerObject* objectp, U32 ip, U32 port)
|
|||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
LLViewerObjectList::OrphanInfo::OrphanInfo()
|
||||
: mParentInfo(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -112,16 +112,20 @@ struct LLGodForceOwnerData
|
|||
//
|
||||
LLViewerParcelMgr::LLViewerParcelMgr()
|
||||
: mSelected(FALSE),
|
||||
mRequestResult(0),
|
||||
mWestSouth(),
|
||||
mEastNorth(),
|
||||
mSelectedDwell(0.f),
|
||||
mAgentParcelSequenceID(-1),
|
||||
mHoverRequestResult(0),
|
||||
mHoverWestSouth(),
|
||||
mHoverEastNorth(),
|
||||
mRenderCollision(FALSE),
|
||||
mRenderSelection(TRUE),
|
||||
mCollisionBanned(0),
|
||||
mCollisionTimer()
|
||||
mCollisionTimer(),
|
||||
mMediaParcelId(0),
|
||||
mMediaRegionId(0)
|
||||
{
|
||||
mCurrentParcel = new LLParcel();
|
||||
mCurrentParcelSelection = new LLParcelSelection(mCurrentParcel);
|
||||
|
|
|
|||
|
|
@ -1394,6 +1394,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
|
|||
capabilityNames.append("SendUserReportWithScreenshot");
|
||||
capabilityNames.append("ServerReleaseNotes");
|
||||
capabilityNames.append("StartGroupProposal");
|
||||
capabilityNames.append("UpdateAgentLanguage");
|
||||
capabilityNames.append("UpdateGestureAgentInventory");
|
||||
capabilityNames.append("UpdateNotecardAgentInventory");
|
||||
capabilityNames.append("UpdateScriptAgentInventory");
|
||||
|
|
|
|||
|
|
@ -218,6 +218,19 @@ void LLVivoxProtocolParser::reset()
|
|||
ignoringTags = false;
|
||||
accumulateText = false;
|
||||
textBuffer.clear();
|
||||
|
||||
energy = 0.f;
|
||||
ignoreDepth = 0;
|
||||
isChannel = false;
|
||||
isEvent = false;
|
||||
isLocallyMuted = false;
|
||||
isModeratorMuted = false;
|
||||
isSpeaking = false;
|
||||
participantType = 0;
|
||||
returnCode = 0;
|
||||
state = 0;
|
||||
statusCode = 0;
|
||||
volume = 0;
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -1329,6 +1342,7 @@ void LLVoiceClient::stateMachine()
|
|||
|
||||
fakeargv[i] = NULL;
|
||||
|
||||
fflush(NULL); // flush all buffers before the child inherits them
|
||||
pid_t id = vfork();
|
||||
if(id == 0)
|
||||
{
|
||||
|
|
@ -3018,7 +3032,7 @@ void LLVoiceClient::muteListChanged()
|
|||
/////////////////////////////
|
||||
// Managing list of participants
|
||||
LLVoiceClient::participantState::participantState(const std::string &uri) :
|
||||
mURI(uri), mPTT(false), mIsSpeaking(false), mIsModeratorMuted(false), mPower(0.0), mServiceType(serviceTypeUnknown),
|
||||
mURI(uri), mPTT(false), mIsSpeaking(false), mIsModeratorMuted(false), mLastSpokeTimestamp(0.f), mPower(0.f), mVolume(0), mServiceType(serviceTypeUnknown),
|
||||
mOnMuteList(false), mUserVolume(100), mVolumeDirty(false), mAvatarIDValid(false)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,13 +84,12 @@ const F32 LLWorld::mWidthInMeters = mWidth * mScale;
|
|||
|
||||
// allocate the stack
|
||||
LLWorld::LLWorld()
|
||||
: mLandFarClip(DEFAULT_FAR_PLANE),
|
||||
mLastPacketsIn(0),
|
||||
mLastPacketsOut(0),
|
||||
mLastPacketsLost(0),
|
||||
mSpaceTimeUSec(0)
|
||||
{
|
||||
mSpaceTimeUSec = 0;
|
||||
mLastPacketsIn = 0;
|
||||
mLastPacketsOut = 0;
|
||||
mLastPacketsLost = 0;
|
||||
mLandFarClip = DEFAULT_FAR_PLANE;
|
||||
|
||||
if (gNoRender)
|
||||
{
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -170,22 +170,17 @@ private:
|
|||
S32 mLastPacketsOut;
|
||||
S32 mLastPacketsLost;
|
||||
|
||||
U64 mSpaceTimeUSec;
|
||||
|
||||
////////////////////////////
|
||||
//
|
||||
// Data for "Fake" objects
|
||||
//
|
||||
|
||||
// Used to define the "Square" which we need to fill in
|
||||
U32 mMinRegionX;
|
||||
U32 mMaxRegionX;
|
||||
U32 mMinRegionY;
|
||||
U32 mMaxRegionY;
|
||||
|
||||
std::list<LLVOWater*> mHoleWaterObjects;
|
||||
LLPointer<LLVOWater> mEdgeWaterObjects[8];
|
||||
|
||||
LLPointer<LLViewerImage> mDefaultWaterTexturep;
|
||||
U64 mSpaceTimeUSec;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ LLSimInfo::LLSimInfo()
|
|||
: mHandle(0),
|
||||
mName(),
|
||||
mAgentsUpdateTime(0),
|
||||
mShowAgentLocations(FALSE),
|
||||
mAccess(0x0),
|
||||
mRegionFlags(0x0),
|
||||
mWaterHeight(0.f),
|
||||
|
|
|
|||
Loading…
Reference in New Issue