mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-21 05:02:28 +02:00
Missing file from previous checkin.
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
// AI_character_sentry.h
|
||||
// Native state-machine replacement for ai_character_sentry.script.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
class rvmCharSentry : public rvmCharacter {
|
||||
public:
|
||||
CLASS_PROTOTYPE( rvmCharSentry );
|
||||
|
||||
rvmCharSentry();
|
||||
virtual void Init( idAI* aiOwner ) override;
|
||||
virtual void Destroy() override;
|
||||
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
||||
|
||||
protected:
|
||||
enum {
|
||||
RETREATING = -1,
|
||||
NOT_MOVING = 0,
|
||||
APPROACHING = 1,
|
||||
PLAYER_LOST = 0,
|
||||
PLAYER_BEHIND_ME = 1,
|
||||
PLAYER_OK = 2,
|
||||
PLAYER_AHEAD_OF_ME = 3
|
||||
};
|
||||
|
||||
bool lead_player;
|
||||
bool hanging;
|
||||
bool awake;
|
||||
bool fire;
|
||||
float playerMoveState;
|
||||
idEntityPtr<idEntity> light;
|
||||
bool light_on;
|
||||
float nextPositionSearch;
|
||||
idEntityPtr<idEntity> ignore_enemy;
|
||||
float ignore_enemy_time;
|
||||
idVec3 lastValidPlayerPosition;
|
||||
bool playerPositionThread;
|
||||
float nextLookTime;
|
||||
float leadTimeout;
|
||||
int shotsFired;
|
||||
float nextFireTime;
|
||||
|
||||
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 Torso_RangeAttack( 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_Fold( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Folded( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Unfold( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Hanging( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_TurnLeft( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_TurnRight( stateParms_t* parms );
|
||||
virtual stateResult_t state_Begin( stateParms_t* parms );
|
||||
virtual stateResult_t updatePlayerPositionThread( stateParms_t* parms );
|
||||
virtual stateResult_t path_sentry_light_on( stateParms_t* parms );
|
||||
virtual stateResult_t path_sentry_light_off( stateParms_t* parms );
|
||||
virtual stateResult_t path_sentry_shutdown( stateParms_t* parms );
|
||||
virtual stateResult_t path_sentry_unlock_door( stateParms_t* parms );
|
||||
virtual stateResult_t path_corner( stateParms_t* parms );
|
||||
virtual stateResult_t path_sentry_lead_player( stateParms_t* parms );
|
||||
virtual stateResult_t path_sentry_ignore_player( stateParms_t* parms );
|
||||
virtual stateResult_t state_Killed( stateParms_t* parms );
|
||||
virtual stateResult_t state_WaitForTrigger( stateParms_t* parms );
|
||||
virtual stateResult_t state_Idle( stateParms_t* parms );
|
||||
virtual stateResult_t state_FollowPath( 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_Lead( stateParms_t* parms );
|
||||
virtual stateResult_t state_FindPlayer( stateParms_t* parms );
|
||||
virtual stateResult_t state_Combat( stateParms_t* parms );
|
||||
virtual stateResult_t combat_chase( stateParms_t* parms );
|
||||
virtual stateResult_t combat_range( stateParms_t* parms );
|
||||
|
||||
virtual void spawn_flashlight( );
|
||||
virtual void flashlight_off( );
|
||||
virtual void flashlight_on( );
|
||||
virtual void ignore( idEntity* ignore_ent );
|
||||
virtual bool checkForEnemy( float use_fov );
|
||||
virtual float checkDestinationDistance( );
|
||||
virtual bool find_attack_position( );
|
||||
virtual void do_attack( int attack_flags );
|
||||
virtual int check_attacks( );
|
||||
};
|
||||
Reference in New Issue
Block a user