mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-20 20:50:58 +02:00
Missing file from previous checkin.
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
// AI_monster_boss_sabaoth.h
|
||||
// Native state-machine replacement for ai_monster_boss_sabaoth.script.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#ifndef SABAOTH_ATTACK_RATE
|
||||
#define SABAOTH_ATTACK_RATE 4
|
||||
#endif
|
||||
#ifndef SABAOTH_ATTACK_RATE_MELEE
|
||||
#define SABAOTH_ATTACK_RATE_MELEE 1
|
||||
#endif
|
||||
#ifndef SABAOTH_SLOW_DIST
|
||||
#define SABAOTH_SLOW_DIST 64
|
||||
#endif
|
||||
#ifndef SECTION_MOVE_DIST
|
||||
#define SECTION_MOVE_DIST 190
|
||||
#endif
|
||||
#ifndef CENTER_DIST
|
||||
#define CENTER_DIST 304
|
||||
#endif
|
||||
#ifndef MELEE_INIT
|
||||
#define MELEE_INIT 290
|
||||
#endif
|
||||
|
||||
class rvmMonsterBossSabaoth : public rvmMonsterBase {
|
||||
public:
|
||||
CLASS_PROTOTYPE( rvmMonsterBossSabaoth );
|
||||
|
||||
rvmMonsterBossSabaoth();
|
||||
virtual void Init( idAI* aiOwner ) override;
|
||||
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
|
||||
|
||||
protected:
|
||||
float nextAttack;
|
||||
float nextMeleeAttack;
|
||||
float pathSpeed;
|
||||
bool noSlowToStop;
|
||||
idEntityPtr<idEntity> currentPath;
|
||||
idEntityPtr<idEntity> nextPath;
|
||||
|
||||
virtual stateResult_t Torso_Idle( stateParms_t* parms );
|
||||
virtual stateResult_t Torso_MeleeAttack( stateParms_t* parms );
|
||||
virtual stateResult_t Torso_RangeAttack( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Idle( stateParms_t* parms );
|
||||
virtual stateResult_t Legs_Walk( stateParms_t* parms );
|
||||
virtual stateResult_t state_Killed( stateParms_t* parms );
|
||||
virtual stateResult_t state_Begin( stateParms_t* parms );
|
||||
virtual stateResult_t state_Idle( stateParms_t* parms );
|
||||
virtual stateResult_t move_to_corner( stateParms_t* parms );
|
||||
virtual stateResult_t turn_to_corner( stateParms_t* parms );
|
||||
virtual stateResult_t closeSection( stateParms_t* parms );
|
||||
virtual stateResult_t openSection( stateParms_t* parms );
|
||||
virtual stateResult_t state_Combat( stateParms_t* parms );
|
||||
virtual stateResult_t combat_range( stateParms_t* parms );
|
||||
virtual stateResult_t combat_melee( stateParms_t* parms );
|
||||
virtual stateResult_t fire_bfg( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_1( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_1( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_2( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_2( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_3( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_3( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_4( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_4( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_5( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_5( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_6( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_6( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_7( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_7( stateParms_t* parms );
|
||||
virtual stateResult_t open_section_8( stateParms_t* parms );
|
||||
virtual stateResult_t close_section_8( stateParms_t* parms );
|
||||
virtual int check_attacks( bool meleeOnly );
|
||||
virtual int check_attacks() override;
|
||||
virtual bool do_attack( int attack_flags ) override;
|
||||
stateResult_t set_section_open( stateParms_t* parms, int section, bool open );
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user