mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 15:21:51 +00:00
CANRAISE state definition
CANRAISE state for allowing a monster to be resurrected without an infinite frame
This commit is contained in:
parent
ca93e04de3
commit
4270838613
3 changed files with 13 additions and 2 deletions
|
@ -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';
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue