mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-20 04:30:12 +02:00
Missing file from previous checkin.
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
// AI_monster_base.h
|
||||
// Native state-machine replacement for ai_monster_base.script.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
class rvmMonsterBase : public rvmAIObject {
|
||||
public:
|
||||
CLASS_PROTOTYPE( rvmMonsterBase );
|
||||
|
||||
rvmMonsterBase();
|
||||
virtual void Init( idAI* aiOwner ) override;
|
||||
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
||||
|
||||
protected:
|
||||
float run_distance;
|
||||
float walk_turn;
|
||||
bool run;
|
||||
bool ambush;
|
||||
bool ignoreEnemies;
|
||||
bool stay_on_attackpath;
|
||||
bool idle_sight_fov;
|
||||
float customBlendOut;
|
||||
idEntityPtr<idEntity> current_path;
|
||||
idEntityPtr<idEntity> next_path;
|
||||
bool resurrect;
|
||||
bool ignore_lostcombat;
|
||||
bool blocked;
|
||||
bool ignore_sight;
|
||||
|
||||
// Animation state machines.
|
||||
virtual stateResult_t Torso_CustomCycle( stateParms_t* parms );
|
||||
virtual stateResult_t Torso_CustomAnim( stateParms_t* parms );
|
||||
virtual stateResult_t Torso_Sight( stateParms_t* parms );
|
||||
virtual stateResult_t Torso_Death( stateParms_t* parms );
|
||||
virtual stateResult_t Torso_Idle( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Idle( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Death( stateParms_t* parms );
|
||||
|
||||
// Main/action state machines.
|
||||
virtual stateResult_t state_Begin( stateParms_t* parms );
|
||||
virtual stateResult_t state_Spawner( stateParms_t* parms );
|
||||
virtual stateResult_t state_Resurrect( stateParms_t* parms );
|
||||
virtual stateResult_t state_Killed( stateParms_t* parms );
|
||||
virtual stateResult_t state_Dead( stateParms_t* parms );
|
||||
virtual stateResult_t state_Combat( stateParms_t* parms );
|
||||
virtual stateResult_t state_LostCombat( stateParms_t* parms );
|
||||
virtual stateResult_t state_FollowAlternatePath( stateParms_t* parms );
|
||||
|
||||
virtual stateResult_t monster_begin( stateParms_t* parms );
|
||||
virtual stateResult_t wait_for_enemy( stateParms_t* parms );
|
||||
virtual stateResult_t sight_enemy( stateParms_t* parms );
|
||||
virtual stateResult_t walk_on_trigger( stateParms_t* parms );
|
||||
virtual stateResult_t wake_on_trigger( stateParms_t* parms );
|
||||
virtual stateResult_t wake_on_enemy( stateParms_t* parms );
|
||||
virtual stateResult_t wake_on_attackcone( stateParms_t* parms );
|
||||
virtual stateResult_t idle_followPathEntities( stateParms_t* parms );
|
||||
virtual stateResult_t path_corner( stateParms_t* parms );
|
||||
virtual stateResult_t path_anim( stateParms_t* parms );
|
||||
virtual stateResult_t path_cycleanim( stateParms_t* parms );
|
||||
virtual stateResult_t path_turn( stateParms_t* parms );
|
||||
virtual stateResult_t path_wait( stateParms_t* parms );
|
||||
virtual stateResult_t path_waitfortrigger( stateParms_t* parms );
|
||||
virtual stateResult_t path_hide( stateParms_t* parms );
|
||||
virtual stateResult_t path_show( stateParms_t* parms );
|
||||
virtual stateResult_t path_attack( stateParms_t* parms );
|
||||
virtual stateResult_t combat_wander( stateParms_t* parms );
|
||||
virtual stateResult_t combat_turret_node( stateParms_t* parms );
|
||||
virtual stateResult_t combat_attack_cone( stateParms_t* parms );
|
||||
virtual stateResult_t combat_ainode( stateParms_t* parms );
|
||||
|
||||
// Non-blocking helpers.
|
||||
virtual int check_attacks();
|
||||
virtual bool do_attack( int attack_flags );
|
||||
virtual bool checkTurretAttack();
|
||||
virtual void playCustomCycle( const char* animname, float blendTime );
|
||||
virtual void playCustomAnim( const char* animname, float blendIn, float blendOut );
|
||||
virtual void trigger_wakeup_targets();
|
||||
virtual bool checkForEnemy( bool use_fov );
|
||||
virtual void archvile_minion();
|
||||
virtual bool can_resurrect();
|
||||
virtual void monster_resurrect( idEntity* enemy );
|
||||
virtual void enemy_dead();
|
||||
virtual bool check_blocked();
|
||||
virtual bool combat_chase();
|
||||
virtual void combat_lost();
|
||||
virtual void monster_base_lost_combat();
|
||||
virtual void checkNodeAnim( idEntity* node, const char* prefix, const char* anim );
|
||||
virtual void follow_alternate_path1();
|
||||
virtual void follow_alternate_path2();
|
||||
virtual void follow_alternate_path3();
|
||||
};
|
||||
Reference in New Issue
Block a user