diff --git a/Engine/source/T3D/aiPlayer.cpp b/Engine/source/T3D/aiPlayer.cpp index 051da06e4..d8f4d9e2d 100644 --- a/Engine/source/T3D/aiPlayer.cpp +++ b/Engine/source/T3D/aiPlayer.cpp @@ -293,6 +293,30 @@ void AIPlayer::clearAim() mAimOffset = Point3F(0.0f, 0.0f, 0.0f); } +/** + * Sets the correct aim for the bot to the target + */ +void AIPlayer::getMuzzleVector(U32 imageSlot,VectorF* vec) +{ + MatrixF mat; + getMuzzleTransform(imageSlot,&mat); + + MountedImage& image = mMountedImageList[imageSlot]; + + if (image.dataBlock->correctMuzzleVector) + { + disableHeadZCalc(); + if (getCorrectedAim(mat, vec)) + { + enableHeadZCalc(); + return; + } + enableHeadZCalc(); + + } + mat.getColumn(1,vec); +} + /** * Set the state of a movement trigger. * diff --git a/Engine/source/T3D/aiPlayer.h b/Engine/source/T3D/aiPlayer.h index e4f47eb9a..d37cb896b 100644 --- a/Engine/source/T3D/aiPlayer.h +++ b/Engine/source/T3D/aiPlayer.h @@ -170,6 +170,7 @@ public: void setAimLocation( const Point3F &location ); Point3F getAimLocation() const { return mAimLocation; } void clearAim(); + void AIPlayer::getMuzzleVector(U32 imageSlot,VectorF* vec); bool checkInLos(GameBase* target = NULL, bool _useMuzzle = false, bool _checkEnabled = false); bool checkInFoV(GameBase* target = NULL, F32 camFov = 45.0f, bool _checkEnabled = false); F32 getTargetDistance(GameBase* target, bool _checkEnabled);