mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 14:51:40 +00:00
- fixed: In Heretic corpses do not get crunched to gibs, they just get their size reduced to 0. Handled by a new gameinfo flag. This also gets set for Chex quest which has the gib sprite replaced by something different. Using a Crush state will override this global flag.
This commit is contained in:
parent
47a9dab56d
commit
388f09f786
5 changed files with 14 additions and 0 deletions
|
@ -323,6 +323,7 @@ void FMapInfoParser::ParseGameInfo()
|
|||
GAMEINFOKEY_BOOL(noloopfinalemusic, "noloopfinalemusic")
|
||||
GAMEINFOKEY_BOOL(drawreadthis, "drawreadthis")
|
||||
GAMEINFOKEY_BOOL(swapmenu, "swapmenu")
|
||||
GAMEINFOKEY_BOOL(dontcrunchcorpses, "dontcrunchcorpses")
|
||||
GAMEINFOKEY_BOOL(intermissioncounter, "intermissioncounter")
|
||||
GAMEINFOKEY_BOOL(nightmarefast, "nightmarefast")
|
||||
GAMEINFOKEY_COLOR(dimcolor, "dimcolor")
|
||||
|
|
1
src/gi.h
1
src/gi.h
|
@ -113,6 +113,7 @@ struct gameinfo_t
|
|||
bool intermissioncounter;
|
||||
bool nightmarefast;
|
||||
bool swapmenu;
|
||||
bool dontcrunchcorpses;
|
||||
TArray<FName> creditPages;
|
||||
TArray<FName> finalePages;
|
||||
TArray<FName> infoPages;
|
||||
|
|
|
@ -1010,6 +1010,16 @@ bool AActor::Grind(bool items)
|
|||
if ((flags & MF_CORPSE) && !(flags3 & MF3_DONTGIB) && (health <= 0))
|
||||
{
|
||||
FState * state = FindState(NAME_Crush);
|
||||
|
||||
// In Heretic and Chex Quest we don't change the actor's sprite, just its size.
|
||||
if (state == NULL && gameinfo.dontcrunchcorpses)
|
||||
{
|
||||
flags &= ~MF_SOLID;
|
||||
flags3 |= MF3_DONTGIB;
|
||||
height = radius = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool isgeneric = false;
|
||||
// ZDoom behavior differs from standard as crushed corpses cannot be raised.
|
||||
// The reason for the change was originally because of a problem with players,
|
||||
|
|
|
@ -40,6 +40,7 @@ gameinfo
|
|||
definventorymaxamount = 25
|
||||
defaultrespawntime = 12
|
||||
defaultdropstyle = 1
|
||||
dontcrunchcorpses = 1
|
||||
endoom = "ENDOOM"
|
||||
player5start = 4001
|
||||
drawreadthis = true
|
||||
|
|
|
@ -56,6 +56,7 @@ gameinfo
|
|||
nightmarefast = true
|
||||
pausesign = "PAUSED"
|
||||
gibfactor = 0.5
|
||||
dontcrunchcorpses = true
|
||||
cursorpic = "herecurs"
|
||||
textscreenx = 20
|
||||
textscreeny = 5
|
||||
|
|
Loading…
Reference in a new issue