diff --git a/Engine/source/T3D/player.cpp b/Engine/source/T3D/player.cpp index 18a4492ad..9fb073bcd 100644 --- a/Engine/source/T3D/player.cpp +++ b/Engine/source/T3D/player.cpp @@ -128,14 +128,6 @@ enum PlayerConstants { //---------------------------------------------------------------------------- // Player shape animation sequences: -// look Used to control the upper body arm motion. Must animate -// vertically +-80 deg. -Player::Range Player::mArmRange(mDegToRad(-80.0f),mDegToRad(+80.0f)); - -// head Used to control the direction the head is looking. Must -// animated vertically +-80 deg . -Player::Range Player::mHeadVRange(mDegToRad(-80.0f),mDegToRad(+80.0f)); - // Action Animations: PlayerData::ActionAnimationDef PlayerData::ActionAnimationList[NumTableActionAnims] = { @@ -3431,31 +3423,38 @@ void Player::updateDamageState() //---------------------------------------------------------------------------- -void Player::updateLookAnimation(F32 dT) +void Player::updateLookAnimation(F32 dt) { // Calculate our interpolated head position. - Point3F renderHead = delta.head + delta.headVec * dT; + Point3F renderHead = delta.head + delta.headVec * dt; // Adjust look pos. This assumes that the animations match // the min and max look angles provided in the datablock. if (mArmAnimation.thread) { - // TG: Adjust arm position to avoid collision. - F32 tp = mControlObject? 0.5: - (renderHead.x - mArmRange.min) / mArmRange.delta; - mShapeInstance->setPos(mArmAnimation.thread,mClampF(tp,0,1)); + if(mControlObject) + { + mShapeInstance->setPos(mArmAnimation.thread,0.5f); + } + else + { + F32 d = mDataBlock->maxLookAngle - mDataBlock->minLookAngle; + F32 tp = (renderHead.x - mDataBlock->minLookAngle) / d; + mShapeInstance->setPos(mArmAnimation.thread,mClampF(tp,0,1)); + } } if (mHeadVThread) { - F32 tp = (renderHead.x - mHeadVRange.min) / mHeadVRange.delta; + F32 d = mDataBlock->maxLookAngle - mDataBlock->minLookAngle; + F32 tp = (renderHead.x - mDataBlock->minLookAngle) / d; mShapeInstance->setPos(mHeadVThread,mClampF(tp,0,1)); } if (mHeadHThread) { - F32 dt = 2 * mDataBlock->maxFreelookAngle; - F32 tp = (renderHead.z + mDataBlock->maxFreelookAngle) / dt; + F32 d = 2 * mDataBlock->maxFreelookAngle; + F32 tp = (renderHead.z + mDataBlock->maxFreelookAngle) / d; mShapeInstance->setPos(mHeadHThread,mClampF(tp,0,1)); } } diff --git a/Engine/source/T3D/player.h b/Engine/source/T3D/player.h index bdb5a2c0e..17a05445a 100644 --- a/Engine/source/T3D/player.h +++ b/Engine/source/T3D/player.h @@ -398,16 +398,6 @@ protected: NextFreeMask = Parent::NextFreeMask << 3 }; - struct Range { - Range(F32 _min,F32 _max) { - min = _min; - max = _max; - delta = _max - _min; - }; - F32 min,max; - F32 delta; - }; - SimObjectPtr mSplashEmitter[PlayerData::NUM_SPLASH_EMITTERS]; F32 mBubbleEmitterTime; @@ -508,9 +498,6 @@ protected: TSThread* mHeadHThread; TSThread* mRecoilThread; TSThread* mImageStateThread; - static Range mArmRange; - static Range mHeadVRange; - static Range mHeadHRange; /// @} bool mInMissionArea; ///< Are we in the mission area?