// AI_follower.h // Native state-machine replacement for ai_follower(1).script. #pragma once class rvmFollower : public rvmAIObject { public: CLASS_PROTOTYPE( rvmFollower ); virtual void Init( idAI* aiOwner ) override; virtual void Destroy() override; virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override; protected: virtual stateResult_t Torso_CustomCycle( stateParms_t* parms ); virtual stateResult_t Torso_CustomAnim( stateParms_t* parms ); virtual stateResult_t Torso_Death( stateParms_t* parms ); virtual stateResult_t Torso_Idle( stateParms_t* parms ); virtual stateResult_t Torso_Pain( stateParms_t* parms ); virtual stateResult_t Legs_Death( stateParms_t* parms ); virtual stateResult_t Legs_Idle( stateParms_t* parms ); virtual stateResult_t Legs_Walk( stateParms_t* parms ); virtual stateResult_t Legs_Run( stateParms_t* parms ); virtual stateResult_t Legs_TurnLeft( stateParms_t* parms ); virtual stateResult_t Legs_TurnRight( stateParms_t* parms ); virtual stateResult_t state_Idle( stateParms_t* parms ); virtual stateResult_t state_Killed( stateParms_t* parms ); virtual stateResult_t state_Follow( stateParms_t* parms ); virtual stateResult_t getCloser( stateParms_t* parms ); virtual float should_turn_left( ); virtual float should_turn_right( ); virtual void playCustomCycle( const char* animname, float blendTime ); virtual void playCustomAnim( const char* animname, float blendIn, float blendOut ); };