// AI_alphalabs2_scientist1.h // Native state-machine replacement for ai_alphalabs2_scientist1.script. #pragma once class rvmAIAlphaLabs2Scientist1 : public rvmAIObject { public: CLASS_PROTOTYPE( rvmAIAlphaLabs2Scientist1 ); 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 Head_Idle( stateParms_t* parms ); virtual stateResult_t Head_Death( stateParms_t* parms ); virtual stateResult_t Head_DeathScene( stateParms_t* parms ); virtual stateResult_t Head_Greeting( stateParms_t* parms ); virtual stateResult_t Head_Speech( stateParms_t* parms ); virtual stateResult_t Head_Hurry( stateParms_t* parms ); virtual stateResult_t Head_StayClose( stateParms_t* parms ); virtual stateResult_t Head_Electro_Pulses( stateParms_t* parms ); virtual stateResult_t Head_Pulse1( stateParms_t* parms ); virtual stateResult_t Head_Pulse2( stateParms_t* parms ); virtual stateResult_t Head_WatchIt( stateParms_t* parms ); virtual stateResult_t Head_Spooked( stateParms_t* parms ); virtual stateResult_t Head_Exit( stateParms_t* parms ); virtual stateResult_t Head_SayStuff( stateParms_t* parms ); virtual stateResult_t Head_Attacked( stateParms_t* parms ); virtual stateResult_t Head_AttackDone( stateParms_t* parms ); virtual stateResult_t Torso_Work( stateParms_t* parms ); virtual stateResult_t Torso_DeathScene( 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_TurnLeft( stateParms_t* parms ); virtual stateResult_t Legs_TurnRight( stateParms_t* parms ); virtual stateResult_t Legs_Cower( stateParms_t* parms ); virtual stateResult_t light_fade1( stateParms_t* parms ); virtual stateResult_t light_fade2( stateParms_t* parms ); virtual stateResult_t doEvent( stateParms_t* parms ); virtual stateResult_t sayStuff( stateParms_t* parms ); virtual stateResult_t hurry_up( stateParms_t* parms ); virtual stateResult_t updatePlayerPositionThread( stateParms_t* parms ); virtual stateResult_t checkBlocked( stateParms_t* parms ); virtual stateResult_t state_Killed( stateParms_t* parms ); virtual stateResult_t state_DeathScene( stateParms_t* parms ); virtual stateResult_t state_WorkingOnStuff( stateParms_t* parms ); virtual stateResult_t state_NoticePlayer( stateParms_t* parms ); virtual stateResult_t state_Wait( stateParms_t* parms ); virtual stateResult_t state_GetCloser( stateParms_t* parms ); virtual stateResult_t state_CantReachPlayer( stateParms_t* parms ); virtual stateResult_t state_Spooked( stateParms_t* parms ); virtual stateResult_t state_Lead( stateParms_t* parms ); virtual stateResult_t state_FindPlayer( stateParms_t* parms ); virtual stateResult_t state_Cower( stateParms_t* parms ); virtual void faceTowardsEntity( idEntity* target, float duration ); virtual void light_fade_out( float fadeTime ); virtual void light_fade_in( float fadeTime ); virtual void light_fade( float stay_off ); virtual float checkDestinationDistance( ); };