From 07812106ed54d834a2cf0be28f312bbf0ad34a1d Mon Sep 17 00:00:00 2001
From: "Brad Payne (Vir Linden)" <vir@lindenlab.com>
Date: Mon, 5 Jan 2015 18:13:33 -0500
Subject: Moved mHoverOffset to LLCharacter so it's accessible inside
 animations. Apply offset when constrained to ground.

---
 indra/llcharacter/llcharacter.h        | 2 ++
 indra/llcharacter/llkeyframemotion.cpp | 1 +
 indra/newview/llvoavatar.cpp           | 6 +++---
 indra/newview/llvoavatar.h             | 2 --
 4 files changed, 6 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/llcharacter/llcharacter.h b/indra/llcharacter/llcharacter.h
index d4e3b76386..085b681854 100755
--- a/indra/llcharacter/llcharacter.h
+++ b/indra/llcharacter/llcharacter.h
@@ -261,6 +261,8 @@ public:
 	static std::vector< LLCharacter* > sInstances;
 	static BOOL sAllowInstancesChange ; //debug use
 
+	LLVector3 mHoverOffset;
+
 protected:
 	LLMotionController	mMotionController;
 
diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp
index 22aa4f1d2f..89bec40323 100755
--- a/indra/llcharacter/llkeyframemotion.cpp
+++ b/indra/llcharacter/llkeyframemotion.cpp
@@ -984,6 +984,7 @@ void LLKeyframeMotion::applyConstraint(JointConstraint* constraint, F32 time, U8
 	{
 	case CONSTRAINT_TARGET_TYPE_GROUND:
 		target_pos = mCharacter->getPosAgentFromGlobal(constraint->mGroundPos);
+		target_pos += mCharacter->mHoverOffset;
 //		LL_INFOS() << "Target Pos " << constraint->mGroundPos << " on " << mCharacter->findCollisionVolume(shared_data->mSourceConstraintVolume)->getName() << LL_ENDL;
 		break;
 	case CONSTRAINT_TARGET_TYPE_BODY:
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 6669a797ce..cbfda020b4 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -721,11 +721,11 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
 	mIsEditingAppearance(FALSE),
 	mUseLocalAppearance(FALSE),
 	mLastUpdateRequestCOFVersion(-1),
-	mLastUpdateReceivedCOFVersion(-1),
-	mHoverOffset(0.0, 0.0, 0.0)
+	mLastUpdateReceivedCOFVersion(-1)
+	//mHoverOffset(0.0, 0.0, 0.0)
 {
 	//VTResume();  // VTune
-	
+	mHoverOffset = LLVector3(0.0, 0.0, 0.0);
 	// mVoiceVisualizer is created by the hud effects manager and uses the HUD Effects pipeline
 	const BOOL needsSendToSim = false; // currently, this HUD effect doesn't need to pack and unpack data to do its job
 	mVoiceVisualizer = ( LLVoiceVisualizer *)LLHUDManager::getInstance()->createViewerEffect( LLHUDObject::LL_HUD_EFFECT_VOICE_VISUALIZER, needsSendToSim );
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index a12e688087..0daf679e8e 100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -213,8 +213,6 @@ public:
 	/*virtual*/ LLVector3		getPosAgentFromGlobal(const LLVector3d &position);
 	virtual void				updateVisualParams();
 
-	LLVector3 mHoverOffset;
-
 /**                    Inherited
  **                                                                            **
  *******************************************************************************/
-- 
cgit v1.2.3