Files
DoomRTX/neo/doom3/game/ai/AI_monster_zombie_sawyer.h
T
2026-05-23 14:30:21 -07:00

41 lines
1.5 KiB
C++

// AI_monster_zombie_sawyer.h
// Native state-machine replacement for ai_monster_zombie_sawyer.script.
#pragma once
#ifndef SAWYER_SMOKE_PARTICLES
#define SAWYER_SMOKE_PARTICLES 0
#define SAWYER_BLOOD_PARTICLES 1
#endif
class rvmMonsterZombieSawyer : public rvmMonsterZombieBase {
public:
CLASS_PROTOTYPE( rvmMonsterZombieSawyer );
rvmMonsterZombieSawyer();
virtual void Init( idAI* aiOwner ) override;
virtual stateResult_t RunStateByName( const char* stateName, stateParms_t* parms ) override;
protected:
bool attack;
float painNextTime;
float nextHitTime;
int bloodSmokeFrames;
virtual stateResult_t Torso_Idle( stateParms_t* parms ) override;
virtual stateResult_t Torso_Pain( stateParms_t* parms );
virtual stateResult_t Torso_MeleeAttack( stateParms_t* parms );
virtual stateResult_t Legs_Idle( stateParms_t* parms ) override;
virtual stateResult_t Legs_Run( stateParms_t* parms );
virtual stateResult_t state_Begin( stateParms_t* parms ) override;
virtual stateResult_t state_Idle( stateParms_t* parms );
virtual stateResult_t combat_melee( stateParms_t* parms );
virtual int check_attacks() override;
virtual bool do_attack( int attack_flags ) override;
virtual void start_smoke();
virtual void start_attack();
virtual void end_attack();
};