summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcharacter/llheadrotmotion.cpp20
-rw-r--r--indra/llcharacter/lljointstate.h2
-rw-r--r--indra/llcharacter/llmotioncontroller.cpp21
-rw-r--r--indra/llcharacter/llmotioncontroller.h2
-rw-r--r--indra/llcharacter/llvisualparam.h4
-rw-r--r--indra/llcommon/llenum.h2
-rw-r--r--indra/llcommon/metaclass.cpp3
-rw-r--r--indra/llcommon/metaproperty.cpp3
-rw-r--r--indra/llcommon/reflective.cpp2
-rw-r--r--indra/llinventory/llparcel.h2
-rw-r--r--indra/llinventory/llparcelflags.h2
-rw-r--r--indra/llmath/llvolume.h2
-rw-r--r--indra/llmath/v4color.h2
-rw-r--r--indra/llmessage/llteleportflags.h1
-rw-r--r--indra/llmessage/machine.h4
-rw-r--r--indra/llmessage/net.cpp5
-rw-r--r--indra/llprimitive/llprimitive.h6
-rw-r--r--indra/llprimitive/lltreeparams.h2
-rw-r--r--indra/llui/llscrolllistctrl.h4
-rw-r--r--indra/llui/lltextbox.cpp7
-rw-r--r--indra/llui/lluictrl.h4
-rw-r--r--indra/llui/llview.cpp4
-rw-r--r--indra/llui/llviewquery.cpp2
-rw-r--r--indra/llxml/llxmlnode.h6
-rw-r--r--indra/lscript/lscript_library.h4
-rw-r--r--indra/newview/gpu_table.txt3
-rw-r--r--indra/newview/llagent.cpp4
-rw-r--r--indra/newview/llagent.h4
-rw-r--r--indra/newview/lldrawable.h12
-rw-r--r--indra/newview/lldriverparam.h3
-rw-r--r--indra/newview/llface.cpp2
-rw-r--r--indra/newview/llface.h10
-rw-r--r--indra/newview/llflexibleobject.cpp4
-rw-r--r--indra/newview/llflexibleobject.h3
-rw-r--r--indra/newview/llfloaterabout.cpp5
-rw-r--r--indra/newview/llfloaterchat.cpp64
-rw-r--r--indra/newview/llfloaterland.cpp10
-rw-r--r--indra/newview/llfloaterregioninfo.cpp5
-rw-r--r--indra/newview/llfloatertopobjects.cpp11
-rw-r--r--indra/newview/llfloatertopobjects.h2
-rw-r--r--indra/newview/llimpanel.h2
-rw-r--r--indra/newview/llpanelcontents.cpp1
-rw-r--r--indra/newview/llpanelface.cpp1
-rw-r--r--indra/newview/llpanellogin.cpp28
-rw-r--r--indra/newview/llpolymesh.h6
-rw-r--r--indra/newview/llprogressview.cpp2
-rw-r--r--indra/newview/llsrv.cpp232
-rw-r--r--indra/newview/llsrv.h19
-rw-r--r--indra/newview/llstatusbar.cpp85
-rw-r--r--indra/newview/llstatusbar.h7
-rw-r--r--indra/newview/lltexlayer.cpp2
-rw-r--r--indra/newview/lltexlayer.h9
-rw-r--r--indra/newview/lltextureview.cpp4
-rw-r--r--indra/newview/llviewerjointattachment.h5
-rw-r--r--indra/newview/llviewermenufile.cpp2
-rw-r--r--indra/newview/llviewermessage.cpp8
-rw-r--r--indra/newview/llviewerwindow.cpp2
-rw-r--r--indra/newview/llvosky.h2
-rw-r--r--indra/newview/llvowater.h3
-rwxr-xr-xindra/newview/viewer_manifest.py4
60 files changed, 502 insertions, 180 deletions
diff --git a/indra/llcharacter/llheadrotmotion.cpp b/indra/llcharacter/llheadrotmotion.cpp
index 66b675e34d..cbce927ced 100644
--- a/indra/llcharacter/llheadrotmotion.cpp
+++ b/indra/llcharacter/llheadrotmotion.cpp
@@ -418,6 +418,10 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
up.setVec(eye_look_at % left);
target_eye_rot = LLQuaternion(eye_look_at, left, up);
+ // convert target rotation to head-local coordinates
+ target_eye_rot *= ~mHeadJoint->getWorldRotation();
+ // 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();
@@ -426,7 +430,7 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
}
else
{
- target_eye_rot = mHeadJoint->getWorldRotation();
+ target_eye_rot = LLQuaternion::DEFAULT;
vergence = 0.f;
}
@@ -468,18 +472,8 @@ BOOL LLEyeMotion::onUpdate(F32 time, U8* joint_mask)
vergence_quat.transQuat();
right_eye_rot = vergence_quat * eye_jitter_rot * right_eye_rot;
- //set final eye rotations
- // start with left
- LLQuaternion tQw = mLeftEyeState.getJoint()->getParent()->getWorldRotation();
- LLQuaternion tQh = left_eye_rot * ~tQw;
- tQh.constrain(EYE_ROT_LIMIT_ANGLE);
- mLeftEyeState.setRotation( tQh );
-
- // now do right eye
- tQw = mRightEyeState.getJoint()->getParent()->getWorldRotation();
- tQh = right_eye_rot * ~tQw;
- tQh.constrain(EYE_ROT_LIMIT_ANGLE);
- mRightEyeState.setRotation( tQh );
+ mLeftEyeState.setRotation( left_eye_rot );
+ mRightEyeState.setRotation( right_eye_rot );
return TRUE;
}
diff --git a/indra/llcharacter/lljointstate.h b/indra/llcharacter/lljointstate.h
index 82a2b345b0..c1c68ff065 100644
--- a/indra/llcharacter/lljointstate.h
+++ b/indra/llcharacter/lljointstate.h
@@ -98,7 +98,7 @@ public:
void setScale( const LLVector3& scale ) { llassert(mUsage & SCALE); mScale = scale; }
// get/set priority
- const LLJoint::JointPriority getPriority() { return mPriority; }
+ LLJoint::JointPriority getPriority() { return mPriority; }
void setPriority( const LLJoint::JointPriority priority ) { mPriority = priority; }
};
diff --git a/indra/llcharacter/llmotioncontroller.cpp b/indra/llcharacter/llmotioncontroller.cpp
index fad69fc6e9..592a6bae2c 100644
--- a/indra/llcharacter/llmotioncontroller.cpp
+++ b/indra/llcharacter/llmotioncontroller.cpp
@@ -340,7 +340,7 @@ BOOL LLMotionController::startMotion(const LLUUID &id, F32 start_offset)
{
if (motion->isStopped()) // motion has been stopped
{
- deactivateMotion(motion);
+ deactivateMotion(motion, false);
}
else if (mTime < motion->mSendStopTimestamp) // motion is still active
{
@@ -376,7 +376,7 @@ BOOL LLMotionController::stopMotionLocally(const LLUUID &id, BOOL stop_immediate
if (stop_immediate)
{
- deactivateMotion(motion);
+ deactivateMotion(motion, false);
}
return TRUE;
}
@@ -472,7 +472,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
{
if (motionp->isStopped() && mTime > motionp->getStopTime() + motionp->getEaseOutDuration())
{
- deactivateMotion(motionp);
+ deactivateMotion(motionp, false);
}
else if (motionp->isStopped() && mTime > motionp->getStopTime())
{
@@ -526,8 +526,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
{
if (motionp->isStopped() && mTime > motionp->getStopTime() + motionp->getEaseOutDuration())
{
- posep->setWeight(0.f);
- deactivateMotion(motionp);
+ deactivateMotion(motionp, true);
}
continue;
}
@@ -553,8 +552,7 @@ void LLMotionController::updateMotionsByType(LLMotion::LLMotionBlendType anim_ty
}
else
{
- posep->setWeight(0.f);
- deactivateMotion(motionp);
+ deactivateMotion(motionp, true);
continue;
}
}
@@ -802,8 +800,15 @@ BOOL LLMotionController::activateMotion(LLMotion *motion, F32 time)
//-----------------------------------------------------------------------------
// deactivateMotion()
//-----------------------------------------------------------------------------
-BOOL LLMotionController::deactivateMotion(LLMotion *motion)
+BOOL LLMotionController::deactivateMotion(LLMotion *motion, bool remove_weight)
{
+ if( remove_weight )
+ {
+ // immediately remove pose weighting instead of letting it time out
+ LLPose *posep = motion->getPose();
+ posep->setWeight(0.f);
+ }
+
motion->deactivate();
mActiveMotions.remove(motion);
diff --git a/indra/llcharacter/llmotioncontroller.h b/indra/llcharacter/llmotioncontroller.h
index 15791b6318..19bab09a11 100644
--- a/indra/llcharacter/llmotioncontroller.h
+++ b/indra/llcharacter/llmotioncontroller.h
@@ -162,7 +162,7 @@ protected:
void deleteAllMotions();
void addLoadedMotion(LLMotion *motion);
BOOL activateMotion(LLMotion *motion, F32 time);
- BOOL deactivateMotion(LLMotion *motion);
+ BOOL deactivateMotion(LLMotion *motion, bool remove_weight);
void updateRegularMotions();
void updateAdditiveMotions();
void resetJointSignatures();
diff --git a/indra/llcharacter/llvisualparam.h b/indra/llcharacter/llvisualparam.h
index 2a8d03d431..d91cba4423 100644
--- a/indra/llcharacter/llvisualparam.h
+++ b/indra/llcharacter/llvisualparam.h
@@ -88,7 +88,7 @@ public:
virtual void stopAnimating(BOOL set_by_user);
// Interface methods
- const S32 getID() { return mID; }
+ S32 getID() { return mID; }
void setID(S32 id) { llassert(!mInfo); mID = id; }
const LLString& getName() const { return mInfo->mName; }
@@ -100,7 +100,7 @@ public:
void setMaxDisplayName(const char* s) { mInfo->mMaxName = s; }
void setMinDisplayName(const char* s) { mInfo->mMinName = s; }
- const EVisualParamGroup getGroup() { return mInfo->mGroup; }
+ EVisualParamGroup getGroup() { return mInfo->mGroup; }
F32 getMinWeight() { return mInfo->mMinWeight; }
F32 getMaxWeight() { return mInfo->mMaxWeight; }
F32 getDefaultWeight() { return mInfo->mDefaultWeight; }
diff --git a/indra/llcommon/llenum.h b/indra/llcommon/llenum.h
index 7443fe9d0f..7d48b91005 100644
--- a/indra/llcommon/llenum.h
+++ b/indra/llcommon/llenum.h
@@ -32,7 +32,7 @@ public:
}
}
- const U32 operator[](std::string str)
+ U32 operator[](std::string str)
{
std::map<const std::string, const U32>::iterator itor;
itor = mEnumMap.find(str);
diff --git a/indra/llcommon/metaclass.cpp b/indra/llcommon/metaclass.cpp
index 29ad20e6b6..0cd5179f04 100644
--- a/indra/llcommon/metaclass.cpp
+++ b/indra/llcommon/metaclass.cpp
@@ -8,7 +8,10 @@
* $License$
*/
+#include "linden_common.h"
+
#include "metaclass.h"
+
#include "metaproperty.h"
#include "reflective.h"
diff --git a/indra/llcommon/metaproperty.cpp b/indra/llcommon/metaproperty.cpp
index adcda03389..25a98f47f3 100644
--- a/indra/llcommon/metaproperty.cpp
+++ b/indra/llcommon/metaproperty.cpp
@@ -8,7 +8,10 @@
* $License$
*/
+#include "linden_common.h"
+
#include "metaproperty.h"
+
#include "metaclass.h"
LLMetaProperty::LLMetaProperty(const std::string& name, const LLMetaClass& object_class) :
diff --git a/indra/llcommon/reflective.cpp b/indra/llcommon/reflective.cpp
index 039a500575..d24aac41bc 100644
--- a/indra/llcommon/reflective.cpp
+++ b/indra/llcommon/reflective.cpp
@@ -7,6 +7,8 @@
* Copyright (c) 2006-$CurrentYear$, Linden Research, Inc.
* $License$
*/
+
+#include "linden_common.h"
#include "reflective.h"
diff --git a/indra/llinventory/llparcel.h b/indra/llinventory/llparcel.h
index fe51185153..d50c4f0d3b 100644
--- a/indra/llinventory/llparcel.h
+++ b/indra/llinventory/llparcel.h
@@ -278,7 +278,7 @@ public:
const char* getMusicURL() const { return mMusicURL.c_str(); }
const char* getMediaURL() const { return mMediaURL.c_str(); }
const LLUUID& getMediaID() const { return mMediaID; }
- const U8 getMediaAutoScale() const { return mMediaAutoScale; }
+ U8 getMediaAutoScale() const { return mMediaAutoScale; }
S32 getLocalID() const { return mLocalID; }
const LLUUID& getOwnerID() const { return mOwnerID; }
const LLUUID& getGroupID() const { return mGroupID; }
diff --git a/indra/llinventory/llparcelflags.h b/indra/llinventory/llparcelflags.h
index d78f9b630b..9bf7687272 100644
--- a/indra/llinventory/llparcelflags.h
+++ b/indra/llinventory/llparcelflags.h
@@ -44,7 +44,7 @@ const U32 PF_ALLOW_GROUP_OBJECT_ENTRY = 1 << 28; // Only allow group (and owner)
const U32 PF_ALLOW_VOICE_CHAT = 1 << 29; // Allow residents to use voice chat on this parcel
const U32 PF_USE_ESTATE_VOICE_CHAN = 1 << 30;
-const U32 PF_RESERVED = 1 << 31;
+const U32 PF_RESERVED = 1U << 31;
// If any of these are true the parcel is restricting access in some maner.
const U32 PF_USE_RESTRICTED_ACCESS = PF_USE_ACCESS_GROUP
diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h
index a7d07bc712..2db44d39d1 100644
--- a/indra/llmath/llvolume.h
+++ b/indra/llmath/llvolume.h
@@ -822,7 +822,7 @@ public:
U8 getPathType() const { return mPathp->mParams.getCurveType(); }
S32 getNumFaces() const { return (S32)mProfilep->mFaces.size(); }
S32 getNumVolumeFaces() const { return mNumVolumeFaces; }
- const F32 getDetail() const { return mDetail; }
+ F32 getDetail() const { return mDetail; }
const LLVolumeParams & getParams() const { return mParams; }
LLVolumeParams getCopyOfParams() const { return mParams; }
const LLProfile& getProfile() const { return *mProfilep; }
diff --git a/indra/llmath/v4color.h b/indra/llmath/v4color.h
index ef9c5d4769..13fdef3850 100644
--- a/indra/llmath/v4color.h
+++ b/indra/llmath/v4color.h
@@ -73,7 +73,7 @@ class LLColor4
F32 magVec() const; // Returns magnitude of LLColor4
F32 magVecSquared() const; // Returns magnitude squared of LLColor4
F32 normVec(); // Normalizes and returns the magnitude of LLColor4
- const BOOL isOpaque() { return mV[VALPHA] == 1.f; }
+ BOOL isOpaque() { return mV[VALPHA] == 1.f; }
F32 operator[](int idx) const { return mV[idx]; }
F32 &operator[](int idx) { return mV[idx]; }
diff --git a/indra/llmessage/llteleportflags.h b/indra/llmessage/llteleportflags.h
index 001d05d109..fd54814ce5 100644
--- a/indra/llmessage/llteleportflags.h
+++ b/indra/llmessage/llteleportflags.h
@@ -24,6 +24,7 @@ const U32 TELEPORT_FLAGS_911 = 1 << 10;
const U32 TELEPORT_FLAGS_DISABLE_CANCEL = 1 << 11; // Used for llTeleportAgentHome()
const U32 TELEPORT_FLAGS_VIA_REGION_ID = 1 << 12;
const U32 TELEPORT_FLAGS_IS_FLYING = 1 << 13;
+const U32 TELEPORT_FLAGS_SHOW_RESET_HOME = 1 << 14;
const U32 TELEPORT_FLAGS_MASK_VIA = TELEPORT_FLAGS_VIA_LURE
| TELEPORT_FLAGS_VIA_LANDMARK
diff --git a/indra/llmessage/machine.h b/indra/llmessage/machine.h
index b5efe717d8..55e3aa0b3c 100644
--- a/indra/llmessage/machine.h
+++ b/indra/llmessage/machine.h
@@ -42,8 +42,8 @@ public:
// get functions
EMachineType getMachineType() const { return mMachineType; }
- const U32 getMachineIP() const { return mHost.getAddress(); }
- const S32 getMachinePort() const { return mHost.getPort(); }
+ U32 getMachineIP() const { return mHost.getAddress(); }
+ S32 getMachinePort() const { return mHost.getPort(); }
const LLHost &getMachineHost() const { return mHost; }
// The control port is the listen port of the parent process that
// launched this machine. 0 means none or not known.
diff --git a/indra/llmessage/net.cpp b/indra/llmessage/net.cpp
index 8cd7180f9a..2d3215f47c 100644
--- a/indra/llmessage/net.cpp
+++ b/indra/llmessage/net.cpp
@@ -271,8 +271,9 @@ S32 start_net(S32& socket_out, int& nPort)
void end_net(S32& socket_out)
{
- if (socket_out < 0)
+ if (socket_out >= 0)
{
+ shutdown(socket_out, SD_BOTH);
closesocket(socket_out);
}
WSACleanup();
@@ -443,7 +444,7 @@ S32 start_net(S32& socket_out, int& nPort)
void end_net(S32& socket_out)
{
- if (socket_out < 0)
+ if (socket_out >= 0)
{
close(socket_out);
}
diff --git a/indra/llprimitive/llprimitive.h b/indra/llprimitive/llprimitive.h
index ab1fc4f719..b5a46a41e6 100644
--- a/indra/llprimitive/llprimitive.h
+++ b/indra/llprimitive/llprimitive.h
@@ -320,14 +320,14 @@ public:
void setAcceleration(const F32 x, const F32 y, const F32 z) { mAcceleration.setVec(x,y,z); }
#endif
- const LLPCode getPCode() const { return mPrimitiveCode; }
+ LLPCode getPCode() const { return mPrimitiveCode; }
const char * getPCodeString() const { return pCodeToString(mPrimitiveCode); }
const LLVector3& getAngularVelocity() const { return mAngularVelocity; }
const LLVector3& getVelocity() const { return mVelocity; }
const LLVector3& getAcceleration() const { return mAcceleration; }
- const U8 getNumTEs() const { return mNumTEs; }
+ U8 getNumTEs() const { return mNumTEs; }
- const U8 getMaterial() const { return mMaterial; }
+ U8 getMaterial() const { return mMaterial; }
void setVolumeType(const U8 code);
U8 getVolumeType();
diff --git a/indra/llprimitive/lltreeparams.h b/indra/llprimitive/lltreeparams.h
index fa55f584e3..957a42f3d3 100644
--- a/indra/llprimitive/lltreeparams.h
+++ b/indra/llprimitive/lltreeparams.h
@@ -12,7 +12,7 @@
/* for information about formulas associated with each type
* check the Weber + Penn paper
*/
-typedef enum EShapeRatio { SR_CONICAL, SR_SPHERICAL, SR_HEMISPHERICAL,
+enum EShapeRatio { SR_CONICAL, SR_SPHERICAL, SR_HEMISPHERICAL,
SR_CYLINDRICAL, SR_TAPERED_CYLINDRICAL, SR_FLAME,
SR_INVERSE_CONICAL, SR_TEND_FLAME, SR_ENVELOPE};
diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index 711d3b0ce8..793f97dc64 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -39,7 +39,7 @@ public:
virtual S32 getHeight() const = 0;
virtual const LLString& getText() const { return LLString::null; }
virtual const LLString& getTextLower() const { return LLString::null; }
- virtual const BOOL getVisible() const { return TRUE; }
+ virtual BOOL getVisible() const { return TRUE; }
virtual void setWidth(S32 width) = 0;
virtual void highlightText(S32 offset, S32 num_chars) {}
virtual BOOL isText() = 0;
@@ -76,7 +76,7 @@ public:
virtual void setWidth(S32 width) { mWidth = width; }
virtual S32 getHeight() const { return llround(mFont->getLineHeight()); }
virtual const LLString& getText() const { return mText.getString(); }
- virtual const BOOL getVisible() const { return mVisible; }
+ virtual BOOL getVisible() const { return mVisible; }
virtual void highlightText(S32 offset, S32 num_chars) {mHighlightOffset = offset; mHighlightCount = num_chars;}
void setText(const LLString& text);
virtual void setColor(const LLColor4&);
diff --git a/indra/llui/lltextbox.cpp b/indra/llui/lltextbox.cpp
index 48ff6afbd5..f15383c6f7 100644
--- a/indra/llui/lltextbox.cpp
+++ b/indra/llui/lltextbox.cpp
@@ -419,6 +419,7 @@ LLView* LLTextBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *f
text,
font,
FALSE);
+
LLFontGL::HAlign halign = LLView::selectFontHAlign(node);
text_box->setHAlign(halign);
@@ -430,6 +431,12 @@ LLView* LLTextBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *f
{
text_box->mFontStyle = LLFontGL::getStyleFromString(font_style);
}
+
+ BOOL mouse_opaque;
+ if (node->getAttributeBOOL("mouse_opaque", mouse_opaque))
+ {
+ text_box->setMouseOpaque(mouse_opaque);
+ }
if(node->hasAttribute("text_color"))
{
diff --git a/indra/llui/lluictrl.h b/indra/llui/lluictrl.h
index 1c2ac677df..f07cbec328 100644
--- a/indra/llui/lluictrl.h
+++ b/indra/llui/lluictrl.h
@@ -116,7 +116,7 @@ public:
{
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const
{
- return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl * const>(view)->hasTabStop() && children.size() == 0, TRUE);
+ return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl *>(view)->hasTabStop() && children.size() == 0, TRUE);
}
};
@@ -124,7 +124,7 @@ public:
{
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const
{
- return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl * const>(view)->acceptsTextInput(), TRUE);
+ return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl *>(view)->acceptsTextInput(), TRUE);
}
};
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 1fab00b524..dbc635830b 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -435,8 +435,8 @@ bool LLCompareByTabOrder::operator() (const LLView* const a, const LLView* const
if(b && b->isCtrl()) b_score--;
if(a_score == -2 && b_score == -2)
{
- const LLUICtrl * const a_ctrl = static_cast<const LLUICtrl* const>(a);
- const LLUICtrl * const b_ctrl = static_cast<const LLUICtrl* const>(b);
+ const LLUICtrl * const a_ctrl = static_cast<const LLUICtrl*>(a);
+ const LLUICtrl * const b_ctrl = static_cast<const LLUICtrl*>(b);
LLView::child_tab_order_const_iter_t a_found = mTabOrder.find(a_ctrl), b_found = mTabOrder.find(b_ctrl);
if(a_found != mTabOrder.end()) a_score--;
if(b_found != mTabOrder.end()) b_score--;
diff --git a/indra/llui/llviewquery.cpp b/indra/llui/llviewquery.cpp
index c7ae4245dd..647e5e5707 100644
--- a/indra/llui/llviewquery.cpp
+++ b/indra/llui/llviewquery.cpp
@@ -29,7 +29,7 @@ filterResult_t LLEnabledFilter::operator() (const LLView* const view, const view
}
filterResult_t LLTabStopFilter::operator() (const LLView* const view, const viewList_t & children) const
{
- return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl* const>(view)->hasTabStop(),
+ return filterResult_t(view->isCtrl() && static_cast<const LLUICtrl*>(view)->hasTabStop(),
view->canFocusChildren());
}
diff --git a/indra/llxml/llxmlnode.h b/indra/llxml/llxmlnode.h
index 24fccb72c6..56e66f2f9d 100644
--- a/indra/llxml/llxmlnode.h
+++ b/indra/llxml/llxmlnode.h
@@ -151,12 +151,12 @@ public:
BOOL getAttributeString(const LLString& name, LLString& value );
const ValueType& getType() const { return mType; }
- const U32 getLength() const { return mLength; }
- const U32 getPrecision() const { return mPrecision; }
+ U32 getLength() const { return mLength; }
+ U32 getPrecision() const { return mPrecision; }
const LLString& getValue() const { return mValue; }
LLString getTextContents() const;
const LLStringTableEntry* getName() const { return mName; }
- const BOOL hasName(LLString name) const { return mName == gStringTable.checkStringEntry(name); }
+ BOOL hasName(LLString name) const { return mName == gStringTable.checkStringEntry(name); }
const LLString& getID() const { return mID; }
U32 getChildCount() const;
diff --git a/indra/lscript/lscript_library.h b/indra/lscript/lscript_library.h
index ed6e3bc1de..b5fdfc7a22 100644
--- a/indra/lscript/lscript_library.h
+++ b/indra/lscript/lscript_library.h
@@ -64,7 +64,7 @@ public:
LLQuaternion mQuat;
LLScriptLibData *mListp;
- friend const bool operator<=(const LLScriptLibData &a, const LLScriptLibData &b)
+ friend bool operator<=(const LLScriptLibData &a, const LLScriptLibData &b)
{
if (a.mType == b.mType)
{
@@ -92,7 +92,7 @@ public:
return TRUE;
}
- friend const bool operator==(const LLScriptLibData &a, const LLScriptLibData &b)
+ friend bool operator==(const LLScriptLibData &a, const LLScriptLibData &b)
{
if (a.mType == b.mType)
{
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index a6d1deea1e..74fbe2c7f2 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -66,6 +66,9 @@ Intel 915GM .*Intel.*915GM 0
Intel 945G .*Intel.*945G 0
Intel 945GM .*Intel.*945GM 0
Intel 950 .*Intel.*950.*950 0
+Intel G965 .*Intel.*G965.* 0
+Intel GM965 .*Intel.*GM965.* 0
+Intel G33 .*Intel.*G33.* 0
Intel Brookdale .*Intel.*Brookdale.* 0
Intel Montara .*Intel.*Montara.* 0
Intel Springdale .*Intel.*Springdale.* 0
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index f2cb9ea9ca..6713ea3eb2 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -1005,7 +1005,7 @@ const LLVector3 &LLAgent::getPositionAgent()
//-----------------------------------------------------------------------------
// getRegionsVisited()
//-----------------------------------------------------------------------------
-const S32 LLAgent::getRegionsVisited() const
+S32 LLAgent::getRegionsVisited() const
{
return mRegionsVisited.size();
}
@@ -1013,7 +1013,7 @@ const S32 LLAgent::getRegionsVisited() const
//-----------------------------------------------------------------------------
// getDistanceTraveled()
//-----------------------------------------------------------------------------
-const F64 LLAgent::getDistanceTraveled() const
+F64 LLAgent::getDistanceTraveled() const
{
return mDistanceTraveled;
}
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 2ee6634467..c6d11b5ae5 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -280,8 +280,8 @@ public:
const LLVector3d &getPositionGlobal();
const LLVector3 &getPositionAgent();
- const S32 getRegionsVisited() const;
- const F64 getDistanceTraveled() const;
+ S32 getRegionsVisited() const;
+ F64 getDistanceTraveled() const;
const LLVector3d &getFocusGlobal() const { return mFocusGlobal; }
const LLVector3d &getFocusTargetGlobal() const { return mFocusTargetGlobal; }
diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h
index 782775d338..48c58dbb4c 100644
--- a/indra/newview/lldrawable.h
+++ b/indra/newview/lldrawable.h
@@ -68,7 +68,7 @@ public:
const LLMatrix4& getWorldMatrix() const { return mXform.getWorldMatrix(); }
const LLMatrix4& getRenderMatrix() const { return isRoot() ? getWorldMatrix() : getParent()->getWorldMatrix(); }
- const void setPosition(LLVector3 v) const { }
+ void setPosition(LLVector3 v) const { }
const LLVector3& getPosition() const { return mXform.getPosition(); }
const LLVector3& getWorldPosition() const { return mXform.getPositionW(); }
const LLVector3 getPositionAgent() const;
@@ -76,14 +76,14 @@ public:
const LLVector3& getScale() const { return mCurrentScale; }
const LLQuaternion& getWorldRotation() const { return mXform.getWorldRotation(); }
const LLQuaternion& getRotation() const { return mXform.getRotation(); }
- const F32 getIntensity() const { return llmin(mXform.getScale().mV[0], 4.f); }
- const S32 getLOD() const { return mVObjp ? mVObjp->getLOD() : 1; }
- const F64 getBinRadius() const { return mBinRadius; }
+ F32 getIntensity() const { return llmin(mXform.getScale().mV[0], 4.f); }
+ S32 getLOD() const { return mVObjp ? mVObjp->getLOD() : 1; }
+ F64 getBinRadius() const { return mBinRadius; }
void getMinMax(LLVector3& min,LLVector3& max) const { mXform.getMinMax(min,max); }
LLXformMatrix* getXform() { return &mXform; }
- const U32 getState() const { return mState; }
- const BOOL isState (U32 bits) const { return ((mState & bits) != 0); }
+ U32 getState() const { return mState; }
+ BOOL isState (U32 bits) const { return ((mState & bits) != 0); }
void setState (U32 bits) { mState |= bits; }
void clearState(U32 bits) { mState &= ~bits; }
diff --git a/indra/newview/lldriverparam.h b/indra/newview/lldriverparam.h
index 8cdaa893c8..ccd64ab6c8 100644
--- a/indra/newview/lldriverparam.h
+++ b/indra/newview/lldriverparam.h
@@ -84,7 +84,8 @@ protected:
typedef std::vector<LLDrivenEntry> entry_list_t;
entry_list_t mDriven;
LLViewerVisualParam* mCurrentDistortionParam;
- LLPointer<LLVOAvatar> mAvatarp;
+ // Backlink only; don't make this an LLPointer.
+ LLVOAvatar* mAvatarp;
};
#endif // LL_LLDRIVERPARAM_H
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 14f3d4ad2b..33389e00e9 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -916,7 +916,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
BOOL is_static = mDrawablep->isStatic();
BOOL is_global = is_static;
- if (-1 == index_offset)
+ if (index_offset == (U32) -1)
{
return TRUE;
}
diff --git a/indra/newview/llface.h b/indra/newview/llface.h
index 63548b080a..a304d52f13 100644
--- a/indra/newview/llface.h
+++ b/indra/newview/llface.h
@@ -55,11 +55,11 @@ public:
const LLMatrix4& getWorldMatrix() const { return mVObjp->getWorldMatrix(mXform); }
const LLMatrix4& getRenderMatrix() const;
- const U32 getIndicesCount() const { return mIndicesCount; };
- const S32 getIndicesStart() const { return mIndicesIndex; };
- const S32 getGeomCount() const { return mGeomCount; } // vertex count for this face
- const S32 getGeomIndex() const { return mGeomIndex; } // index into draw pool
- const U32 getGeomStart() const { return mGeomIndex; } // index into draw pool
+ U32 getIndicesCount() const { return mIndicesCount; };
+ S32 getIndicesStart() const { return mIndicesIndex; };
+ S32 getGeomCount() const { return mGeomCount; } // vertex count for this face
+ S32 getGeomIndex() const { return mGeomIndex; } // index into draw pool
+ U32 getGeomStart() const { return mGeomIndex; } // index into draw pool
LLViewerImage* getTexture() const { return mTexture; }
void setTexture(LLViewerImage* tex) { mTexture = tex; }
LLXformMatrix* getXform() const { return mXform; }
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index 3107b062b7..2e9dba3af4 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -606,7 +606,7 @@ void LLVolumeImplFlexible::onSetScale(const LLVector3& scale, BOOL damped)
BOOL LLVolumeImplFlexible::doUpdateGeometry(LLDrawable *drawable)
{
- LLVOVolume *volume = (LLVOVolume*)mVO.get();
+ LLVOVolume *volume = (LLVOVolume*)mVO;
if (volume->mDrawable.isNull()) // Not sure why this is happening, but it is...
{
@@ -722,7 +722,7 @@ void LLVolumeImplFlexible::updateRelativeXform()
{
LLQuaternion delta_rot;
LLVector3 delta_pos, delta_scale;
- LLVOVolume* vo = (LLVOVolume*) mVO.get();
+ LLVOVolume* vo = (LLVOVolume*) mVO;
//matrix from local space to parent relative/global space
delta_rot = vo->mDrawable->isSpatialRoot() ? LLQuaternion() : vo->mDrawable->getRotation();
diff --git a/indra/newview/llflexibleobject.h b/indra/newview/llflexibleobject.h
index 3a26604913..c814f67b91 100644
--- a/indra/newview/llflexibleobject.h
+++ b/indra/newview/llflexibleobject.h
@@ -91,7 +91,8 @@ class LLVolumeImplFlexible : public LLVolumeInterface
//--------------------------------------
// private members
//--------------------------------------
- LLPointer<LLViewerObject> mVO;
+ // Backlink only; don't make this an LLPointer.
+ LLViewerObject* mVO;
LLTimer mTimer;
LLVector3 mAnchorPosition;
LLVector3 mParentPosition;
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 63b5262ced..ff7e8a41b7 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -62,9 +62,10 @@ LLFloaterAbout::LLFloaterAbout()
// Version string
LLString version = gSecondLife
- + llformat(" %d.%d.%d (%d) %s %s",
+ + llformat(" %d.%d.%d (%d) %s %s (%s)",
LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VIEWER_BUILD,
- __DATE__, __TIME__);
+ __DATE__, __TIME__,
+ gChannelName.c_str());
support.append(version);
support.append("\n\n");
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp
index 75c68acb78..f4769cc18f 100644
--- a/indra/newview/llfloaterchat.cpp
+++ b/indra/newview/llfloaterchat.cpp
@@ -167,22 +167,22 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file)
// could flash the chat button in the status bar here. JC
if (!gFloaterChat) return;
- LLViewerTextEditor* HistoryEditor = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor");
- LLViewerTextEditor* HistoryEditorWithMute = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor with mute");
+ LLViewerTextEditor* history_editor = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor");
+ LLViewerTextEditor* history_editor_with_mute = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor with mute");
- HistoryEditor->setParseHTML(TRUE);
- HistoryEditorWithMute->setParseHTML(TRUE);
+ history_editor->setParseHTML(TRUE);
+ history_editor_with_mute->setParseHTML(TRUE);
if (!chat.mMuted)
{
- add_timestamped_line(HistoryEditor, chat.mText, color);
- add_timestamped_line(HistoryEditorWithMute, chat.mText, color);
+ add_timestamped_line(history_editor, chat.mText, color);
+ add_timestamped_line(history_editor_with_mute, chat.mText, color);
}
else
{
// desaturate muted chat
LLColor4 muted_color = lerp(color, LLColor4::grey, 0.5f);
- add_timestamped_line(HistoryEditorWithMute, chat.mText, color);
+ add_timestamped_line(history_editor_with_mute, chat.mText, color);
}
if (!chat.mMuted
@@ -191,17 +191,19 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file)
&& chat.mFromID != gAgent.getID())
{
- LLComboBox* ChatterCombo = LLUICtrlFactory::getComboBoxByName(gFloaterChat,"chatter combobox");
+ LLComboBox* chatter_combo = LLUICtrlFactory::getComboBoxByName(gFloaterChat,"chatter combobox");
- if(!ChatterCombo)
- return;
+ if(!chatter_combo)
+ {
+ return;
+ }
- if (!ChatterCombo->setCurrentByID(chat.mFromID))
+ if (!chatter_combo->setCurrentByID(chat.mFromID))
{
// if we have too many items...
- if (ChatterCombo->getItemCount() >= MAX_CHATTER_COUNT)
+ if (chatter_combo->getItemCount() >= MAX_CHATTER_COUNT)
{
- ChatterCombo->remove(0);
+ chatter_combo->remove(0);
}
LLMute mute(chat.mFromID, chat.mFromName);
@@ -214,8 +216,8 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file)
mute.mType = LLMute::AGENT;
}
LLString item = mute.getDisplayName();
- ChatterCombo->add(item, chat.mFromID);
- ChatterCombo->setCurrentByIndex(ChatterCombo->getItemCount() - 1);
+ chatter_combo->add(item, chat.mFromID);
+ chatter_combo->setCurrentByIndex(chatter_combo->getItemCount() - 1);
gFloaterChat->childSetEnabled("Mute resident",TRUE);
}
}
@@ -226,11 +228,11 @@ void LLFloaterChat::setHistoryCursorAndScrollToEnd()
{
if (gFloaterChat)
{
- LLViewerTextEditor* HistoryEditor = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor");
- LLViewerTextEditor* HistoryEditorWithMute = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor with mute");
+ LLViewerTextEditor* history_editor = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor");
+ LLViewerTextEditor* history_editor_with_mute = (LLViewerTextEditor*)gFloaterChat->getChildByName("Chat History Editor with mute");
- HistoryEditor->setCursorAndScrollToEnd();
- HistoryEditorWithMute->setCursorAndScrollToEnd();
+ history_editor->setCursorAndScrollToEnd();
+ history_editor_with_mute->setCursorAndScrollToEnd();
}
}
@@ -259,10 +261,10 @@ void LLFloaterChat::onClickMute(void *data)
{
LLFloaterChat* self = (LLFloaterChat*)data;
- LLComboBox* ChatterCombo = LLUICtrlFactory::getComboBoxByName(self,"chatter combobox");
+ LLComboBox* chatter_combo = LLUICtrlFactory::getComboBoxByName(self,"chatter combobox");
- const LLString& name = ChatterCombo->getSimple();
- LLUUID id = ChatterCombo->getCurrentID();
+ const LLString& name = chatter_combo->getSimple();
+ LLUUID id = chatter_combo->getCurrentID();
if (name.empty()) return;
@@ -308,24 +310,24 @@ void LLFloaterChat::onClickToggleShowMute(LLUICtrl* caller, void *data)
//LLCheckBoxCtrl*
BOOL show_mute = LLUICtrlFactory::getCheckBoxByName(floater,"show mutes")->get();
- LLViewerTextEditor* HistoryEditor = (LLViewerTextEditor*)floater->getChildByName("Chat History Editor");
- LLViewerTextEditor* HistoryEditorWithMute = (LLViewerTextEditor*)floater->getChildByName("Chat History Editor with mute");
+ LLViewerTextEditor* history_editor = (LLViewerTextEditor*)floater->getChildByName("Chat History Editor");
+ LLViewerTextEditor* history_editor_with_mute = (LLViewerTextEditor*)floater->getChildByName("Chat History Editor with mute");
- if (!HistoryEditor || !HistoryEditorWithMute)
+ if (!history_editor || !history_editor_with_mute)
return;
//BOOL show_mute = floater->mShowMuteCheckBox->get();
if (show_mute)
{
- HistoryEditor->setVisible(FALSE);
- HistoryEditorWithMute->setVisible(TRUE);
- HistoryEditorWithMute->setCursorAndScrollToEnd();
+ history_editor->setVisible(FALSE);
+ history_editor_with_mute->setVisible(TRUE);
+ history_editor_with_mute->setCursorAndScrollToEnd();
}
else
{
- HistoryEditor->setVisible(TRUE);
- HistoryEditorWithMute->setVisible(FALSE);
- HistoryEditor->setCursorAndScrollToEnd();
+ history_editor->setVisible(TRUE);
+ history_editor_with_mute->setVisible(FALSE);
+ history_editor->setCursorAndScrollToEnd();
}
}
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index b1143c4e7b..1e9acc96c1 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -172,13 +172,11 @@ void LLFloaterLand::show()
// (and hence we have the local id).
// gParcelMgr->sendParcelAccessListRequest(AL_ACCESS | AL_BAN | AL_RENTER);
- // If we've already got the parcel data, fill the
- // floater with it.
sInstance->mParcel = gParcelMgr->getFloatingParcelSelection();
- if (sInstance->mParcel->getParcel())
- {
- sInstance->refresh();
- }
+
+ // Refresh even if not over a region so we don't get an
+ // uninitialized dialog. The dialog is 0-region aware.
+ sInstance->refresh();
}
//static
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index dc34291f24..1c287a187a 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -30,6 +30,7 @@
#include "llcombobox.h"
#include "llfilepicker.h"
#include "llfloatergodtools.h" // for send_sim_wide_deletes()
+#include "llfloatertopobjects.h" // added to fix SL-32336
#include "llfloatergroups.h"
#include "llfloatertelehub.h"
#include "lllineeditor.h"
@@ -865,6 +866,8 @@ void LLPanelRegionDebugInfo::onClickTopColliders(void* data)
strings_t strings;
strings.push_back("1"); // one physics step
LLUUID invoice(LLFloaterRegionInfo::getLastInvoice());
+ LLFloaterTopObjects::show();
+ LLFloaterTopObjects::clearList();
self->sendEstateOwnerMessage(gMessageSystem, "colliders", invoice, strings);
}
@@ -875,6 +878,8 @@ void LLPanelRegionDebugInfo::onClickTopScripts(void* data)
strings_t strings;
strings.push_back("6"); // top 5 scripts
LLUUID invoice(LLFloaterRegionInfo::getLastInvoice());
+ LLFloaterTopObjects::show();
+ LLFloaterTopObjects::clearList();
self->sendEstateOwnerMessage(gMessageSystem, "scripts", invoice, strings);
}
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 90490f6f9b..d850c6812f 100644
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
@@ -350,19 +350,22 @@ void LLFloaterTopObjects::onDisableSelected(void* data)
sInstance->doToObjects(ACTION_DISABLE, false);
}
+//static
void LLFloaterTopObjects::clearList()
{
- LLCtrlListInterface *list = childGetListInterface("objects_list");
+ LLCtrlListInterface *list = sInstance->childGetListInterface("objects_list");
if (list)
{
list->operateOnAll(LLCtrlListInterface::OP_DELETE);
}
- mObjectListData.clear();
- mObjectListIDs.clear();
+ sInstance->mObjectListData.clear();
+ sInstance->mObjectListIDs.clear();
+ sInstance->mtotalScore = 0.f;
}
+//static
void LLFloaterTopObjects::onRefresh(void* data)
{
U32 mode = STAT_REPORT_TOP_SCRIPTS;
@@ -377,8 +380,6 @@ void LLFloaterTopObjects::onRefresh(void* data)
sInstance->clearList();
}
- sInstance->mtotalScore = 0.f;
-
LLMessageSystem *msg = gMessageSystem;
msg->newMessageFast(_PREHASH_LandStatRequest);
msg->nextBlockFast(_PREHASH_AgentData);
diff --git a/indra/newview/llfloatertopobjects.h b/indra/newview/llfloatertopobjects.h
index 071e0bc5cd..e27955c324 100644
--- a/indra/newview/llfloatertopobjects.h
+++ b/indra/newview/llfloatertopobjects.h
@@ -24,7 +24,7 @@ public:
static void handle_land_reply(LLMessageSystem* msg, void** data);
void handleReply(LLMessageSystem* msg, void** data);
- void clearList();
+ static void clearList();
void updateSelectionInfo();
virtual BOOL postBuild();
diff --git a/indra/newview/llimpanel.h b/indra/newview/llimpanel.h
index 5348308a83..28ea002583 100644
--- a/indra/newview/llimpanel.h
+++ b/indra/newview/llimpanel.h
@@ -78,7 +78,7 @@ public:
const LLUUID& getSessionID() const { return mSessionUUID; }
const LLUUID& getOtherParticipantID() const { return mOtherParticipantUUID; }
- const EInstantMessage getDialogType() const { return mDialog; }
+ EInstantMessage getDialogType() const { return mDialog; }
void sessionInitReplyReceived(const LLUUID& im_session_id);
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index 724ef8a847..7db88b60a2 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -36,7 +36,6 @@
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llresmgr.h"
-#include "lltexturetable.h"
#include "llselectmgr.h"
#include "llpreviewscript.h"
#include "lltool.h"
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 158421f7a0..a83b460e71 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -31,7 +31,6 @@
#include "lltextbox.h"
#include "lltexturectrl.h"
#include "lltextureentry.h"
-#include "lltexturetable.h"
#include "lltooldraganddrop.h"
#include "llui.h"
#include "llviewercontrol.h"
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 58a5969792..c3d4551032 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -200,7 +200,8 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
text->setClickedCallback(onClickVersion);
text->setCallbackUserData(this);
- // HACK
+ // HACK to move to the lower-right of the window
+ // replace/remove this logic when we have dynamic layouts
S32 right = getRect().mRight;
LLRect r = text->getRect();
const S32 PAD = 2;
@@ -209,6 +210,31 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
text->setRect(r);
}
+ LLTextBox* channel_text = LLUICtrlFactory::getTextBoxByName(this, "channel_text");
+ if (channel_text)
+ {
+ channel_text->setText(gChannelName);
+ channel_text->setClickedCallback(onClickVersion);
+ channel_text->setCallbackUserData(this);
+
+ // HACK to move to the right of the window, above the version string,
+ // replace/remove this logic when we have dynamic layouts
+ S32 right = getRect().mRight;
+ LLRect r = channel_text->getRect();
+ const S32 PAD = 2;
+ S32 version_string_top = r.mTop;
+ if(text)
+ {
+ version_string_top = text->getRect().mTop;
+ }
+ r.setOriginAndSize(
+ right - r.getWidth() - PAD,
+ version_string_top,
+ r.getWidth(),
+ r.getHeight());
+ channel_text->setRect(r);
+ }
+
// get the web browser control
#if LL_LIBXUL_ENABLED
LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "login_html");
diff --git a/indra/newview/llpolymesh.h b/indra/newview/llpolymesh.h
index 577f5c7dfb..1d09d6a1d3 100644
--- a/indra/newview/llpolymesh.h
+++ b/indra/newview/llpolymesh.h
@@ -340,7 +340,8 @@ protected:
typedef LLAssocList<std::string, LLPolyMeshSharedData*> LLPolyMeshSharedDataTable;
static LLPolyMeshSharedDataTable sGlobalSharedMeshList;
- LLPointer<LLVOAvatar> mAvatarp;
+ // Backlink only; don't make this an LLPointer.
+ LLVOAvatar* mAvatarp;
};
//-----------------------------------------------------------------------------
@@ -406,7 +407,8 @@ protected:
joint_vec_map_t mJointScales;
joint_vec_map_t mJointOffsets;
LLVector3 mDefaultVec;
- LLPointer<LLVOAvatar> mAvatar;
+ // Backlink only; don't make this an LLPointer.
+ LLVOAvatar *mAvatar;
};
#endif // LL_LLPOLYMESH_H
diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp
index 3bfe913ab4..d91bb7d5cf 100644
--- a/indra/newview/llprogressview.cpp
+++ b/indra/newview/llprogressview.cpp
@@ -104,7 +104,7 @@ BOOL LLProgressView::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent)
// Suck up all keystokes except CTRL-Q.
if( ('Q' == key) && (MASK_CONTROL == mask) )
{
- app_request_quit();
+ app_user_quit();
}
return TRUE;
}
diff --git a/indra/newview/llsrv.cpp b/indra/newview/llsrv.cpp
index cd05d9c107..7669eb994a 100644
--- a/indra/newview/llsrv.cpp
+++ b/indra/newview/llsrv.cpp
@@ -53,49 +53,37 @@ vector<LLSRVRecord> LLSRV::query(const string& name)
#include <netdb.h>
-vector<LLSRVRecord> LLSRV::query(const string& queryName)
+#ifdef HOMEGROWN_RESPONSE_PARSER
+
+// We ought to be using libresolv's ns_initparse and ns_parserr to
+// parse the result of our query. However, libresolv isn't packaged
+// correctly on Linux (as of BIND 9), so neither of these functions is
+// available without statically linking against libresolv. Ugh! This
+// fallback function is available if we need to parse the response
+// ourselves without relying too much on libresolv. It is NOT THE
+// DEFAULT.
+
+vector<LLSRVRecord> LLSRV::parseResponse(const unsigned char *response,
+ int resp_len)
{
- unsigned char response[16384];
vector<LLSRVRecord> recs;
- char name[1024];
- int len;
-
- len = res_query(queryName.c_str(), ns_c_in, ns_t_srv, response,
- sizeof(response));
-
- if (len == -1)
- {
- llinfos << "Query failed for " << queryName << llendl;
- return recs;
- }
- else if (len > (int) sizeof(response))
- {
- llinfos << "Response too big for " << queryName
- << " (capacity " << sizeof(response)
- << ", response " << len << ")" << llendl;
- return recs;
- }
-
- // We "should" be using libresolv's ns_initparse and ns_parserr to
- // parse the result of our query. However, libresolv isn't
- // packaged correctly on Linux (as of BIND 9), so neither of these
- // functions is available without statically linking against
- // libresolv. Ugh! So we parse the response ourselves.
const unsigned char *pos = response + sizeof(HEADER);
- const unsigned char *end = response + len;
+ const unsigned char *end = response + resp_len;
const HEADER *hdr = (const HEADER *) response;
+ char name[1024];
// Skip over the query embedded in the response.
for (int q = ntohs(hdr->qdcount); q > 0; --q)
{
- len = dn_expand(response, end, pos, name, sizeof(name));
+ int len = dn_expand(response, end, pos, name, sizeof(name));
if (len == -1)
{
- llinfos << "Could not expand queried name in RR response" << llendl;
- return recs;
+ llinfos << "Could not expand queried name in RR response"
+ << llendl;
+ goto bail;
}
pos += len + NS_QFIXEDSZ;
@@ -105,11 +93,12 @@ vector<LLSRVRecord> LLSRV::query(const string& queryName)
{
static const ns_rr *rr;
- len = dn_expand(response, end, pos, name, sizeof(name) - 1);
+ int len = dn_expand(response, end, pos, name, sizeof(name) - 1);
if (len == -1)
{
- llinfos << "Could not expand response name in RR response" << llendl;
- return recs;
+ llinfos << "Could not expand response name in RR response"
+ << llendl;
+ goto bail;
}
// Skip over the resource name and headers we don't care about.
@@ -130,7 +119,7 @@ vector<LLSRVRecord> LLSRV::query(const string& queryName)
if (len == -1)
{
llinfos << "Could not expand name in RR response" << llendl;
- return recs;
+ goto bail;
}
recs.push_back(LLSRVRecord(prio, weight, name, port));
@@ -138,12 +127,177 @@ vector<LLSRVRecord> LLSRV::query(const string& queryName)
// There are likely to be more records in the response, but we
// don't care about those, at least for now.
+bail:
+ return reorder(recs);
+}
- return recs;
+#else // HOMEGROWN_RESPONSE_PARSER
+
+// This version of the response parser is the one to use if libresolv
+// is available and behaving itself.
+
+vector<LLSRVRecord> LLSRV::parseResponse(const unsigned char *response,
+ int resp_len)
+{
+ vector<LLSRVRecord> recs;
+ ns_msg hdr;
+
+ if (ns_initparse(response, resp_len, &hdr))
+ {
+ llinfos << "Could not parse response" << llendl;
+ goto bail;
+ }
+
+ for (int i = 0; i < ns_msg_count(hdr, ns_s_an); i++)
+ {
+ ns_rr rr;
+
+ if (ns_parserr(&hdr, ns_s_an, i, &rr))
+ {
+ llinfos << "Could not parse RR" << llendl;
+ goto bail;
+ }
+
+ if (ns_rr_type(rr) != ns_t_srv)
+ {
+ continue;
+ }
+
+ const unsigned char *pos = ns_rr_rdata(rr);
+ U16 prio, weight, port;
+ char name[1024];
+ int ret;
+
+ NS_GET16(prio, pos);
+ NS_GET16(weight, pos);
+ NS_GET16(port, pos);
+
+ ret = dn_expand(ns_msg_base(hdr), ns_msg_end(hdr), pos,
+ name, sizeof(name));
+
+ if (ret == -1)
+ {
+ llinfos << "Could not decompress name" << llendl;
+ goto bail;
+ }
+
+ recs.push_back(LLSRVRecord(prio, weight, name, port));
+ }
+
+bail:
+ return reorder(recs);
+}
+
+#endif // HOMEGROWN_RESPONSE_PARSER
+
+vector<LLSRVRecord> LLSRV::query(const string& queryName)
+{
+ unsigned char response[16384];
+ vector<LLSRVRecord> recs;
+ int len;
+
+ len = res_query(queryName.c_str(), ns_c_in, ns_t_srv, response,
+ sizeof(response));
+
+ if (len == -1)
+ {
+ llinfos << "Query failed for " << queryName << llendl;
+ goto bail;
+ }
+ else if (len > (int) sizeof(response))
+ {
+ llinfos << "Response too big for " << queryName
+ << " (capacity " << sizeof(response)
+ << ", response " << len << ")" << llendl;
+ goto bail;
+ }
+
+ recs = parseResponse(response, len);
+bail:
+ return reorder(recs);
}
#endif // LL_WINDOWS
+// Implement the algorithm specified in RFC 2782 for dealing with RRs
+// of differing priorities and weights.
+vector<LLSRVRecord> LLSRV::reorder(vector<LLSRVRecord>& recs)
+{
+ typedef list<const LLSRVRecord *> reclist_t;
+ typedef map<U16, reclist_t> bucket_t;
+ vector<LLSRVRecord> newRecs;
+ bucket_t buckets;
+
+ // Don't rely on the DNS server to shuffle responses.
+
+ random_shuffle(recs.begin(), recs.end());
+
+ for (vector<LLSRVRecord>::const_iterator iter = recs.begin();
+ iter != recs.end(); ++iter)
+ {
+ buckets[iter->priority()].push_back(&*iter);
+ }
+
+ // Priorities take precedence over weights.
+
+ for (bucket_t::iterator iter = buckets.begin();
+ iter != buckets.end(); ++iter)
+ {
+ reclist_t& myPrio = iter->second;
+ reclist_t r;
+
+ // RRs with weight zero go to the front of the intermediate
+ // list, so they'll have little chance of being chosen.
+ // Larger weights have a higher likelihood of selection.
+
+ for (reclist_t::iterator i = myPrio.begin(); i != myPrio.end(); )
+ {
+ if ((*i)->weight() == 0)
+ {
+ r.push_back(*i);
+ i = myPrio.erase(i);
+ } else {
+ ++i;
+ }
+ }
+
+ r.insert(r.end(), myPrio.begin(), myPrio.end());
+
+ while (!r.empty())
+ {
+ U32 total = 0;
+
+ for (reclist_t::const_iterator i = r.begin(); i != r.end(); ++i)
+ {
+ total += (*i)->weight();
+ }
+
+ U32 target = total > 1 ? (rand() % total) : 0;
+ U32 partial = 0;
+
+ for (reclist_t::iterator i = r.begin(); i != r.end(); )
+ {
+ partial += (*i)->weight();
+ if (partial >= target)
+ {
+ newRecs.push_back(**i);
+ i = r.erase(i);
+ } else {
+ ++i;
+ }
+ }
+ }
+ }
+
+ // Order RRs by lowest numeric priority. The stable sort
+ // preserves the weight choices we made above.
+
+ stable_sort(newRecs.begin(), newRecs.end(),
+ LLSRVRecord::ComparePriorityLowest());
+
+ return newRecs;
+}
+
vector<string> LLSRV::rewriteURI(const string& uriStr)
{
LLURI uri(uriStr);
@@ -166,6 +320,14 @@ vector<string> LLSRV::rewriteURI(const string& uriStr)
size_t i;
llinfos << "Got " << srvs.size() << " results" << llendl;
+ for (iter = srvs.begin(); iter != srvs.end(); ++iter)
+ {
+ lldebugs << "host " << iter->target() << ':' << iter->port()
+ << " prio " << iter->priority()
+ << " weight " << iter->weight()
+ << llendl;
+ }
+
if (srvs.size() > maxSrvs)
{
llinfos << "Clamping to " << maxSrvs << llendl;
diff --git a/indra/newview/llsrv.h b/indra/newview/llsrv.h
index 14a64e639e..fde4f3915d 100644
--- a/indra/newview/llsrv.h
+++ b/indra/newview/llsrv.h
@@ -21,6 +21,7 @@ protected:
std::string mTarget;
U16 mPort;
+public:
LLSRVRecord(U16 priority, U16 weight, const std::string& target,
U16 port) :
mPriority(priority),
@@ -28,16 +29,30 @@ protected:
mTarget(target),
mPort(port) {
}
-
-public:
+
U16 priority() const { return mPriority; }
U16 weight() const { return mWeight; }
const std::string& target() const { return mTarget; }
U16 port() const { return mPort; }
+
+ struct ComparePriorityLowest
+ {
+ bool operator()(const LLSRVRecord& lhs, const LLSRVRecord& rhs)
+ {
+ return lhs.mPriority < rhs.mPriority;
+ }
+ };
};
class LLSRV
{
+protected:
+#ifndef LL_WINDOWS
+ static std::vector<LLSRVRecord> parseResponse(const unsigned char *response,
+ int resp_len);
+#endif
+ static std::vector<LLSRVRecord> reorder(std::vector<LLSRVRecord>& recs);
+
public:
static std::vector<LLSRVRecord> query(const std::string& name);
static std::vector<std::string> rewriteURI(const std::string& uri);
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 72aca1999e..bc27d9af9f 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -62,6 +62,7 @@ LLStatusBar *gStatusBar = NULL;
S32 STATUS_BAR_HEIGHT = 0;
extern S32 MENU_BAR_HEIGHT;
+
// TODO: these values ought to be in the XML too
const S32 MENU_PARCEL_SPACING = 1; // Distance from right of menu item to parcel information
const S32 SIM_STAT_WIDTH = 8;
@@ -75,6 +76,10 @@ const F32 ICON_FLASH_FREQUENCY = 2.f;
const S32 GRAPHIC_FUDGE = 4;
const S32 TEXT_HEIGHT = 18;
+std::vector<std::string> LLStatusBar::sDays;
+std::vector<std::string> LLStatusBar::sMonths;
+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),
@@ -86,6 +91,10 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)
mMouseOpaque = FALSE;
setIsChrome(TRUE);
+ // size of day of the weeks and year
+ sDays.reserve(7);
+ sMonths.reserve(12);
+
mBalanceTimer = new LLFrameTimer();
mHealthTimer = new LLFrameTimer();
@@ -94,6 +103,9 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)
// status bar can never get a tab
setFocusRoot(FALSE);
+ // build date necessary data (must do after panel built)
+ setupDate();
+
mBtnScriptOut = LLUICtrlFactory::getButtonByName( this, "scriptout" );
mBtnHealth = LLUICtrlFactory::getButtonByName( this, "health" );
mBtnFly = LLUICtrlFactory::getButtonByName( this, "fly" );
@@ -108,7 +120,7 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect)
mTextHealth = LLUICtrlFactory::getTextBoxByName( this, "HealthText" );
mTextTime = LLUICtrlFactory::getTextBoxByName( this, "TimeText" );
-
+
S32 x = mRect.getWidth() - 2;
S32 y = 0;
LLRect r;
@@ -245,6 +257,14 @@ void LLStatusBar::refresh()
<< " " << am_pm << " " << tz;
mTextTime->setText(t.str().c_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;
+ mTextTime->setToolTip(date.str().c_str());
+
LLRect r;
const S32 MENU_RIGHT = gMenuBarView->getRightmostMenuEdge();
S32 x = MENU_RIGHT + MENU_PARCEL_SPACING;
@@ -624,6 +644,69 @@ void LLStatusBar::onClickBuyLand(void*)
gParcelMgr->startBuyLand();
}
+// sets the static variables necessary for the date
+void LLStatusBar::setupDate()
+{
+ // fill the day array with what's in the xui
+ LLString day_list = childGetText("StatBarDaysOfWeek");
+ size_t length = day_list.size();
+
+ // quick input check
+ if(length < MAX_DATE_STRING_LENGTH)
+ {
+ // tokenize it and put it in the array
+ LLString cur_word;
+ for(size_t i = 0; i < length; ++i)
+ {
+ if(day_list[i] == ':')
+ {
+ sDays.push_back(cur_word);
+ cur_word.clear();
+ }
+ else
+ {
+ cur_word.append(1, day_list.c_str()[i]);
+ }
+ }
+ sDays.push_back(cur_word);
+ }
+
+ // fill the day array with what's in the xui
+ LLString month_list = childGetText( "StatBarMonthsOfYear" );
+ length = month_list.size();
+
+ // quick input check
+ if(length < MAX_DATE_STRING_LENGTH)
+ {
+ // tokenize it and put it in the array
+ LLString cur_word;
+ for(size_t i = 0; i < length; ++i)
+ {
+ if(month_list[i] == ':')
+ {
+ sMonths.push_back(cur_word);
+ cur_word.clear();
+ }
+ else
+ {
+ cur_word.append(1, month_list.c_str()[i]);
+ }
+ }
+ sMonths.push_back(cur_word);
+ }
+
+ // make sure we have at least 7 days and 12 months
+ if(sDays.size() < 7)
+ {
+ sDays.resize(7);
+ }
+
+ if(sMonths.size() < 12)
+ {
+ sMonths.resize(12);
+ }
+}
+
BOOL can_afford_transaction(S32 cost)
{
return((cost <= 0)||((gStatusBar) && (gStatusBar->getBalance() >=cost)));
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index c44c7acffe..0182cae3b7 100644
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
@@ -73,6 +73,9 @@ protected:
static void onClickScripts(void*);
static void onClickBuyLand(void*);
static void onClickScriptDebug(void*);
+
+ // simple method to setup the part that holds the date
+ void setupDate();
protected:
LLTextBox *mTextBalance;
@@ -101,6 +104,10 @@ protected:
S32 mSquareMetersCommitted;
LLFrameTimer* mBalanceTimer;
LLFrameTimer* mHealthTimer;
+
+ static std::vector<std::string> sDays;
+ static std::vector<std::string> sMonths;
+ static const U32 LLStatusBar::MAX_DATE_STRING_LENGTH;
};
// *HACK: Status bar owns your cached money balance. JC
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index 11a95d4837..178c83f61e 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -2294,7 +2294,7 @@ LLColor4 LLTexParamColor::getNetColor()
{
llassert( getInfo()->mNumColors >= 1 );
- F32 effective_weight = ( mAvatar.notNull() && (mAvatar->getSex() & getSex()) ) ? mCurWeight : getDefaultWeight();
+ F32 effective_weight = ( mAvatar && (mAvatar->getSex() & getSex()) ) ? mCurWeight : getDefaultWeight();
S32 index_last = getInfo()->mNumColors - 1;
F32 scaled_weight = effective_weight * index_last;
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index 1dd0f0b657..d60d4eab6c 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -266,7 +266,8 @@ protected:
typedef std::vector<LLTexLayer *> layer_list_t;
layer_list_t mLayerList;
LLTexLayerSetBuffer* mComposite;
- LLPointer<LLVOAvatar> mAvatar;
+ // Backlink only; don't make this an LLPointer.
+ LLVOAvatar* mAvatar;
BOOL mUpdatesEnabled;
BOOL mHasBump;
@@ -423,7 +424,7 @@ public:
protected:
typedef std::vector<LLTexParamColor *> param_list_t;
param_list_t mParamList;
- LLPointer<LLVOAvatar> mAvatar;
+ LLVOAvatar* mAvatar; // just backlink, don't LLPointer
LLTexGlobalColorInfo *mInfo;
};
@@ -469,7 +470,7 @@ protected:
LLVector3 mAvgDistortionVec;
LLTexGlobalColor* mTexGlobalColor; // either has mTexGlobalColor or mTexLayer as its parent
LLTexLayer* mTexLayer;
- LLPointer<LLVOAvatar> mAvatar; // redundant, but simplifies the code
+ LLVOAvatar* mAvatar; // redundant, but simplifies the code (don't LLPointer)
};
//-----------------------------------------------------------------------------
@@ -549,7 +550,7 @@ public:
~LLBakedUploadData() {}
LLUUID mID;
- LLPointer<LLVOAvatar> mAvatar;
+ LLVOAvatar* mAvatar; // just backlink, don't LLPointer
LLTexLayerSetBuffer* mLayerSetBuffer;
LLUUID mWearableAssets[WT_COUNT];
};
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index 683f8b56cf..d51fffb541 100644
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -23,7 +23,6 @@
#include "lltexlayer.h"
#include "lltexturecache.h"
#include "lltexturefetch.h"
-#include "lltexturetable.h"
#include "llviewerobject.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
@@ -163,9 +162,6 @@ void LLTextureBar::draw()
LLGLSUIDefault gls_ui;
- // Get the name or UUID of the image.
- gTextureTable.getName(mImagep->mID);
-
// Name, pixel_area, requested pixel area, decode priority
char uuid_str[255];
mImagep->mID.toString(uuid_str);
diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h
index d52d522b59..6fda81de51 100644
--- a/indra/newview/llviewerjointattachment.h
+++ b/indra/newview/llviewerjointattachment.h
@@ -59,7 +59,7 @@ public:
S32 getGroup() { return mGroup; }
S32 getPieSlice() { return mPieSlice; }
- BOOL getAttachmentDirty() { return mAttachmentDirty && mAttachedObject.notNull(); }
+ BOOL getAttachmentDirty() { return mAttachmentDirty && mAttachedObject; }
LLViewerObject *getObject() { return mAttachedObject; }
S32 getNumObjects() { return (mAttachedObject ? 1 : 0); }
const LLUUID& getItemID() { return mItemID; }
@@ -79,7 +79,8 @@ protected:
protected:
LLJoint* mJoint;
- LLPointer<LLViewerObject> mAttachedObject;
+ // Backlink only; don't make this an LLPointer.
+ LLViewerObject* mAttachedObject;
BOOL mAttachmentDirty; // does attachment drawable need to be fixed up?
BOOL mVisibleInFirst;
LLVector3 mOriginalPos;
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 2b69c20d15..600d7d3ca2 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -415,7 +415,7 @@ class LLFileQuit : public view_listener_t
{
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
{
- app_request_quit();
+ app_user_quit();
return true;
}
};
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index aa6993098d..9f034b6afd 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -2248,6 +2248,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
}
break;
case CHAT_TYPE_DEBUG_MSG:
+ case CHAT_TYPE_OWNER:
case CHAT_TYPE_NORMAL:
verb = ": ";
break;
@@ -2553,7 +2554,7 @@ void process_teleport_finish(LLMessageSystem* msg, void**)
msg->getStringFast(_PREHASH_Info, _PREHASH_SeedCapability,
STD_STRING_BUF_SIZE, seedCap);
- // update home location if we are teleporting out of prelude
+ // update home location if we are teleporting out of prelude - specific to teleporting to welcome area
if((teleport_flags & TELEPORT_FLAGS_SET_HOME_TO_TARGET)
&& (!gAgent.isGodlike()))
{
@@ -4257,6 +4258,8 @@ void notify_cautioned_script_question(LLScriptQuestionCBData* cbdata, S32 orig_q
// only continue if at least some permissions were requested
if (orig_questions)
{
+ // check to see if the person we are asking
+
// "'[OBJECTNAME]', an object owned by '[OWNERNAME]',
// located in [REGIONNAME] at [REGIONPOS],
// has been <granted|denied> permission to: [PERMISSIONS]."
@@ -4420,6 +4423,9 @@ void process_script_question(LLMessageSystem *msg, void **user_data)
msg->getStringFast(_PREHASH_Data, _PREHASH_ObjectOwner, DB_FULL_NAME_BUF_SIZE, owner_name);
msg->getS32Fast(_PREHASH_Data, _PREHASH_Questions, questions );
+ // don't display permission requests if this object is muted - JS.
+ if (gMuteListp->isMuted(taskid)) return;
+
LLString script_question;
if (questions)
{
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 75d7a97372..5763f988de 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1134,7 +1134,7 @@ BOOL LLViewerWindow::handleCloseRequest(LLWindow *window)
{
// User has indicated they want to close, but we may need to ask
// about modified documents.
- app_request_quit();
+ app_user_quit();
// Don't quit immediately
return FALSE;
}
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index 836cd7add7..763cbe1419 100644
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
@@ -257,7 +257,7 @@ public:
void setHorizonVisibility(const F32 c = 1) { mHorizonVisibility = c; }
const F32& getVisibility() const { return mVisibility; }
void setVisibility(const F32 c = 1) { mVisibility = c; }
- const F32 getHaloBrighness() const
+ F32 getHaloBrighness() const
{
return llmax(0.f, llmin(0.9f, mHorizonVisibility)) * mVisibility;
}
diff --git a/indra/newview/llvowater.h b/indra/newview/llvowater.h
index e3df822037..f7b3e34f8d 100644
--- a/indra/newview/llvowater.h
+++ b/indra/newview/llvowater.h
@@ -12,9 +12,6 @@
#include "llviewerobject.h"
#include "llviewerimage.h"
#include "v2math.h"
-#include "llfft.h"
-
-#include "llwaterpatch.h"
const U32 N_RES = 16; //32 // number of subdivisions of wave tile
const U8 WAVE_STEP = 8;
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index eba306a248..23a2c0b758 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -412,8 +412,8 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libstdc++.so.6")
self.path("libuuid.so", "libuuid.so.1")
self.path("libSDL-1.2.so.0")
- self.path("libtcmalloc.so.0")
- self.path("libstacktrace.so.0")
+ #self.path("libtcmalloc.so.0")
+ #self.path("libstacktrace.so.0")
self.path("libllkdu.so", "../bin/libllkdu.so") # llkdu goes in bin for some reason
self.end_prefix("lib")