quake4-sdk/source/game/ai/AI_Medic.h

93 lines
2.1 KiB
C
Raw Permalink Normal View History

2007-06-15 00:00:00 +00:00
/*
================
AI_Medic.h
================
*/
#include "AI_Tactical.h"
#ifndef __AI_MEDIC__
#define __AI_MEDIC__
class rvAIMedic : public rvAITactical {
public:
CLASS_PROTOTYPE( rvAIMedic );
rvAIMedic ( void );
void InitSpawnArgsVariables ( void );
void Spawn ( void );
void Think ( void );
void Save ( idSaveGame *savefile ) const;
void Restore ( idRestoreGame *savefile );
virtual void Show ( void );
virtual void TalkTo ( idActor *actor );
virtual void GetDebugInfo ( debugInfoProc_t proc, void* userData );
virtual bool IsTethered ( void ) const;
virtual void OnStateThreadClear ( const char *statename, int flags );
virtual bool Pain ( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
bool isTech;
protected:
virtual void OnStartMoving ( void );
private:
idEntityPtr<idPlayer> patient;
bool healing;
int lastPatientCheckTime;
bool emergencyOverride;
bool noAutoHeal;
bool stationary;
bool silent;
bool healObeyTether;
int healAmt;
float patientRange;
float buddyRange;
float enemyRange;
int curHealValue;
int maxHealValue;
int minHealValue;
int healedAmount;
int maxPatientValue;
int healDebounceInterval;
int healDebounceTime;
bool healDisabled;
bool wasAware;
bool wasIgnoreEnemies;
void SetHealValues ( idPlayer* player );
void TakePatient ( idPlayer* pPatient );
void DropPatient ( void );
bool CheckTakePatient ( idPlayer* actor );
bool SituationAllowsPatient ( void );
bool AvailableToTakePatient ( void );
stateResult_t State_Medic ( const stateParms_t& parms );
void Event_EnableHeal ( void );
void Event_DisableHeal ( void );
void Event_EnableMovement ( void );
void Event_DisableMovement ( void );
rvScriptFuncUtility mPostHealScript; // script to run after completing a heal
CLASS_STATES_PROTOTYPE ( rvAIMedic );
};
#endif /* !__AI_MEDIC__ */