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_BALCONY_ATTACK = 200,
ACTOR_STATE_COVER = 300,
ACTOR_STATE_PAIN = 500,
ACTOR_STATE_ALARM = 600,
ACTOR_STATE_KILLED = 700,
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_IDLE = ACTOR_STATE_ALARM_START,
ACTOR_STATE_ALARM_MOVE

View file

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