CANRAISE state definition

CANRAISE state for allowing a monster to be resurrected without an
infinite frame
This commit is contained in:
Edward Richardson 2014-04-12 22:02:19 +12:00
parent ca93e04de3
commit 4270838613
3 changed files with 13 additions and 2 deletions

View File

@ -76,6 +76,7 @@ struct FState
BYTE SameFrame:1; // Ignore Frame (except when spawning actor)
BYTE Fast:1;
BYTE NoDelay:1; // Spawn states executes its action normally
BYTE CanRaise:1; // Allows a monster to be resurrected without waiting for an infinate frame
int ParameterIndex;
inline int GetFrame() const
@ -114,6 +115,10 @@ struct FState
{
return NoDelay;
}
inline bool GetCanRaise() const
{
return CanRaise;
}
inline void SetFrame(BYTE frame)
{
Frame = frame - 'A';

View File

@ -2527,8 +2527,9 @@ static bool P_CheckForResurrection(AActor *self, bool usevilestates)
if (!(corpsehit->flags & MF_CORPSE) )
continue; // not a monster
if (corpsehit->tics != -1)
continue; // not lying still yet
if (corpsehit->tics != -1 && // not lying still yet
!corpsehit->state->GetCanRaise()) // or not ready to be raised yet
continue;
raisestate = corpsehit->FindState(NAME_Raise);
if (raisestate == NULL)

View File

@ -313,6 +313,11 @@ do_stop:
sc.MustGetStringName(")");
continue;
}
if (sc.Compare("CANRAISE"))
{
state.CanRaise = true;
continue;
}
// Make the action name lowercase
strlwr (sc.String);