aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--linden/indra/newview/llglsandbox.cpp20
-rw-r--r--linden/indra/newview/llhudeffectlookat.cpp24
2 files changed, 23 insertions, 21 deletions
diff --git a/linden/indra/newview/llglsandbox.cpp b/linden/indra/newview/llglsandbox.cpp
index 7213e24..a316069 100644
--- a/linden/indra/newview/llglsandbox.cpp
+++ b/linden/indra/newview/llglsandbox.cpp
@@ -71,6 +71,16 @@
71 71
72BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position) 72BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position)
73{ 73{
74 if (object && target_type != LOOKAT_TARGET_NONE && gSavedSettings.getBOOL("PrivateLookAtTarget"))
75 {
76 if ((object->getPositionGlobal() - gAgent.getPositionGlobal()).magVec() > 20.0)
77 {
78 target_type = LOOKAT_TARGET_NONE;
79 object = mAvatarObject;
80 position.clearVec();
81 }
82 }
83
74 if(object && object->isAttachment()) 84 if(object && object->isAttachment())
75 { 85 {
76 LLViewerObject* parent = object; 86 LLViewerObject* parent = object;
@@ -102,6 +112,16 @@ BOOL LLAgent::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVec
102 return FALSE; 112 return FALSE;
103 } 113 }
104 114
115 if (object && target_type != POINTAT_TARGET_NONE && gSavedSettings.getBOOL("PrivateLookAtTarget"))
116 {
117 if ((object->getPositionGlobal() - gAgent.getPositionGlobal()).magVec() > 20.0)
118 {
119 target_type = POINTAT_TARGET_NONE;
120 object = NULL;
121 position.clearVec();
122 }
123 }
124
105 if(!mPointAt || mPointAt->isDead()) 125 if(!mPointAt || mPointAt->isDead())
106 { 126 {
107 mPointAt = (LLHUDEffectPointAt *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINTAT); 127 mPointAt = (LLHUDEffectPointAt *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_POINTAT);
diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp
index 7de5f14..60b2b89 100644
--- a/linden/indra/newview/llhudeffectlookat.cpp
+++ b/linden/indra/newview/llhudeffectlookat.cpp
@@ -287,36 +287,18 @@ void LLHUDEffectLookAt::packData(LLMessageSystem *mesgsys)
287 287
288 // pack both target object and position 288 // pack both target object and position
289 // position interpreted as offset if target object is non-null 289 // position interpreted as offset if target object is non-null
290 ELookAtType target_type = mTargetType;
291 LLVector3d target_offset_global = mTargetOffsetGlobal;
292 LLViewerObject* target_object = (LLViewerObject*) mTargetObject;
293
294 LLVOAvatar* source_avatar = (LLVOAvatar*)(LLViewerObject*)mSourceObject;
295 bool is_self = source_avatar-> isSelf();
296 bool is_private = gSavedSettings.getBOOL("PrivateLookAtTarget");
297
298 if (is_private && is_self)
299 {
300 //this mimicks own avatar selected, consider not to change this
301 //because bots could profile other settings for evil client detection
302 target_type = LOOKAT_TARGET_SELECT;
303 target_offset_global.setVec(5.0, 0.0, 0.0);
304 target_object = mSourceObject;
305 }
306
307
308 if (mTargetObject) 290 if (mTargetObject)
309 { 291 {
310 htonmemcpy(&(packed_data[TARGET_OBJECT]), target_object->mID.mData, MVT_LLUUID, 16); 292 htonmemcpy(&(packed_data[TARGET_OBJECT]), mTargetObject->mID.mData, MVT_LLUUID, 16);
311 } 293 }
312 else 294 else
313 { 295 {
314 htonmemcpy(&(packed_data[TARGET_OBJECT]), LLUUID::null.mData, MVT_LLUUID, 16); 296 htonmemcpy(&(packed_data[TARGET_OBJECT]), LLUUID::null.mData, MVT_LLUUID, 16);
315 } 297 }
316 298
317 htonmemcpy(&(packed_data[TARGET_POS]), target_offset_global.mdV, MVT_LLVector3d, 24); 299 htonmemcpy(&(packed_data[TARGET_POS]), mTargetOffsetGlobal.mdV, MVT_LLVector3d, 24);
318 300
319 U8 lookAtTypePacked = (U8)target_type; 301 U8 lookAtTypePacked = (U8)mTargetType;
320 302
321 htonmemcpy(&(packed_data[LOOKAT_TYPE]), &lookAtTypePacked, MVT_U8, 1); 303 htonmemcpy(&(packed_data[LOOKAT_TYPE]), &lookAtTypePacked, MVT_U8, 1);
322 304