diff options
-rw-r--r-- | linden/indra/newview/llglsandbox.cpp | 20 | ||||
-rw-r--r-- | linden/indra/newview/llhudeffectlookat.cpp | 24 |
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 | ||
72 | BOOL LLAgent::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position) | 72 | BOOL 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 | ||