Finalized actor_pain

This commit is contained in:
smallmodel 2023-10-22 16:23:33 +02:00
parent 6d4a9fde3f
commit adf081ba3c
No known key found for this signature in database
GPG key ID: 9F2D623CEDF08512
2 changed files with 19 additions and 10 deletions

View file

@ -420,6 +420,7 @@ enum eActorState {
ACTOR_STATE_TURRET = 100, ACTOR_STATE_TURRET = 100,
ACTOR_STATE_BALCONY_ATTACK = 200, ACTOR_STATE_BALCONY_ATTACK = 200,
ACTOR_STATE_COVER = 300, ACTOR_STATE_COVER = 300,
ACTOR_STATE_PAIN = 500,
ACTOR_STATE_ALARM = 600, ACTOR_STATE_ALARM = 600,
ACTOR_STATE_KILLED = 700, ACTOR_STATE_KILLED = 700,
ACTOR_STATE_BALCONY_KILLED = 800, ACTOR_STATE_BALCONY_KILLED = 800,
@ -504,9 +505,18 @@ enum eActorState_Cover {
}; };
// //
// Balcony alarm think state // Pain think state
// //
enum eActorState_BalconyAlarm { enum eActorState_Pain {
ACTOR_STATE_PAIN_START = ACTOR_STATE_PAIN,
ACTOR_STATE_PAIN_INITIAL = ACTOR_STATE_PAIN_START,
ACTOR_STATE_PAIN_MAIN
};
//
// Alarm think state
//
enum eActorState_Alarm {
ACTOR_STATE_ALARM_START = ACTOR_STATE_ALARM, ACTOR_STATE_ALARM_START = ACTOR_STATE_ALARM,
ACTOR_STATE_ALARM_IDLE = ACTOR_STATE_ALARM_START, ACTOR_STATE_ALARM_IDLE = ACTOR_STATE_ALARM_START,
ACTOR_STATE_ALARM_MOVE ACTOR_STATE_ALARM_MOVE

View file

@ -34,31 +34,30 @@ void Actor::InitPain(GlobalFuncs_t *func)
void Actor::Begin_Pain(void) void Actor::Begin_Pain(void)
{ {
m_PainState = 500; m_PainState = ACTOR_STATE_PAIN_INITIAL;
} }
void Actor::Think_Pain(void) void Actor::Think_Pain(void)
{ {
NoPoint(); NoPoint();
ForwardLook();
m_bHasDesiredLookAngles = false;
UpdateEyeOrigin(); UpdateEyeOrigin();
if (m_PainState == 500) { if (m_PainState == ACTOR_STATE_PAIN_INITIAL) {
m_pszDebugState = "initial"; m_pszDebugState = "initial";
Anim_StartPain(); Anim_StartPain();
m_PainState = 501; m_PainState = ACTOR_STATE_PAIN_MAIN;
} else if (m_PainState == 501) { } else if (m_PainState == ACTOR_STATE_PAIN_MAIN) {
m_pszDebugState = "main"; m_pszDebugState = "main";
Anim_Pain(); Anim_Pain();
} }
PostThink(false); PostThink(false);
} }
void Actor::FinishedAnimation_Pain(void) void Actor::FinishedAnimation_Pain(void)
{ {
if (m_PainState != 500) { if (m_PainState != ACTOR_STATE_PAIN_START) {
EndCurrentThinkState(); EndCurrentThinkState();
} }
} }