mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-01-31 13:00:59 +00:00
- added DONTCORPSE submission.
SVN r3216 (trunk)
This commit is contained in:
parent
3277b508cd
commit
6053627c5c
4 changed files with 8 additions and 1 deletions
|
@ -327,6 +327,7 @@ enum
|
||||||
MF6_NOMENU = 0x00400000, // Player class should not appear in the class selection menu.
|
MF6_NOMENU = 0x00400000, // Player class should not appear in the class selection menu.
|
||||||
MF6_BOSSCUBE = 0x00800000, // Actor spawned by A_BrainSpit, flagged for timefreeze reasons.
|
MF6_BOSSCUBE = 0x00800000, // Actor spawned by A_BrainSpit, flagged for timefreeze reasons.
|
||||||
MF6_SEEINVISIBLE = 0x01000000, // Monsters can see invisible player.
|
MF6_SEEINVISIBLE = 0x01000000, // Monsters can see invisible player.
|
||||||
|
MF6_DONTCORPSE = 0x02000000, // [RC] Don't autoset MF_CORPSE upon death and don't force Crash state change.
|
||||||
|
|
||||||
// --- mobj.renderflags ---
|
// --- mobj.renderflags ---
|
||||||
|
|
||||||
|
|
|
@ -384,7 +384,8 @@ void AActor::Die (AActor *source, AActor *inflictor)
|
||||||
{ // [RH] Only monsters get to be corpses.
|
{ // [RH] Only monsters get to be corpses.
|
||||||
// Objects with a raise state should get the flag as well so they can
|
// Objects with a raise state should get the flag as well so they can
|
||||||
// be revived by an Arch-Vile. Batman Doom needs this.
|
// be revived by an Arch-Vile. Batman Doom needs this.
|
||||||
flags |= MF_CORPSE;
|
// [RC] And disable this if DONTCORPSE is set, of course.
|
||||||
|
if(!(flags6 & MF6_DONTCORPSE)) flags |= MF_CORPSE;
|
||||||
}
|
}
|
||||||
flags6 |= MF6_KILLED;
|
flags6 |= MF6_KILLED;
|
||||||
|
|
||||||
|
|
|
@ -5484,6 +5484,9 @@ int AActor::GibHealth()
|
||||||
}
|
}
|
||||||
|
|
||||||
void AActor::Crash()
|
void AActor::Crash()
|
||||||
|
{
|
||||||
|
// [RC] Weird that this forces the Crash state regardless of flag.
|
||||||
|
if(!(flags6 & MF6_DONTCORPSE))
|
||||||
{
|
{
|
||||||
if (((flags & MF_CORPSE) || (flags6 & MF6_KILLED)) &&
|
if (((flags & MF_CORPSE) || (flags6 & MF6_KILLED)) &&
|
||||||
!(flags3 & MF3_CRASHED) &&
|
!(flags3 & MF3_CRASHED) &&
|
||||||
|
@ -5512,6 +5515,7 @@ void AActor::Crash()
|
||||||
flags3 |= MF3_CRASHED;
|
flags3 |= MF3_CRASHED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AActor::SetIdle()
|
void AActor::SetIdle()
|
||||||
{
|
{
|
||||||
|
|
|
@ -230,6 +230,7 @@ static FFlagDef ActorFlags[]=
|
||||||
DEFINE_FLAG(MF6, BLOCKEDBYSOLIDACTORS, AActor, flags6),
|
DEFINE_FLAG(MF6, BLOCKEDBYSOLIDACTORS, AActor, flags6),
|
||||||
DEFINE_FLAG(MF6, NOMENU, AActor, flags6),
|
DEFINE_FLAG(MF6, NOMENU, AActor, flags6),
|
||||||
DEFINE_FLAG(MF6, SEEINVISIBLE, AActor, flags6),
|
DEFINE_FLAG(MF6, SEEINVISIBLE, AActor, flags6),
|
||||||
|
DEFINE_FLAG(MF6, DONTCORPSE, AActor, flags6),
|
||||||
|
|
||||||
// Effect flags
|
// Effect flags
|
||||||
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),
|
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),
|
||||||
|
|
Loading…
Reference in a new issue