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(noloopfinalemusic, "noloopfinalemusic")
|
||||||
GAMEINFOKEY_BOOL(drawreadthis, "drawreadthis")
|
GAMEINFOKEY_BOOL(drawreadthis, "drawreadthis")
|
||||||
GAMEINFOKEY_BOOL(swapmenu, "swapmenu")
|
GAMEINFOKEY_BOOL(swapmenu, "swapmenu")
|
||||||
|
GAMEINFOKEY_BOOL(dontcrunchcorpses, "dontcrunchcorpses")
|
||||||
GAMEINFOKEY_BOOL(intermissioncounter, "intermissioncounter")
|
GAMEINFOKEY_BOOL(intermissioncounter, "intermissioncounter")
|
||||||
GAMEINFOKEY_BOOL(nightmarefast, "nightmarefast")
|
GAMEINFOKEY_BOOL(nightmarefast, "nightmarefast")
|
||||||
GAMEINFOKEY_COLOR(dimcolor, "dimcolor")
|
GAMEINFOKEY_COLOR(dimcolor, "dimcolor")
|
||||||
|
|
1
src/gi.h
1
src/gi.h
|
@ -113,6 +113,7 @@ struct gameinfo_t
|
||||||
bool intermissioncounter;
|
bool intermissioncounter;
|
||||||
bool nightmarefast;
|
bool nightmarefast;
|
||||||
bool swapmenu;
|
bool swapmenu;
|
||||||
|
bool dontcrunchcorpses;
|
||||||
TArray<FName> creditPages;
|
TArray<FName> creditPages;
|
||||||
TArray<FName> finalePages;
|
TArray<FName> finalePages;
|
||||||
TArray<FName> infoPages;
|
TArray<FName> infoPages;
|
||||||
|
|
|
@ -1010,6 +1010,16 @@ bool AActor::Grind(bool items)
|
||||||
if ((flags & MF_CORPSE) && !(flags3 & MF3_DONTGIB) && (health <= 0))
|
if ((flags & MF_CORPSE) && !(flags3 & MF3_DONTGIB) && (health <= 0))
|
||||||
{
|
{
|
||||||
FState * state = FindState(NAME_Crush);
|
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;
|
bool isgeneric = false;
|
||||||
// ZDoom behavior differs from standard as crushed corpses cannot be raised.
|
// ZDoom behavior differs from standard as crushed corpses cannot be raised.
|
||||||
// The reason for the change was originally because of a problem with players,
|
// The reason for the change was originally because of a problem with players,
|
||||||
|
|
|
@ -40,6 +40,7 @@ gameinfo
|
||||||
definventorymaxamount = 25
|
definventorymaxamount = 25
|
||||||
defaultrespawntime = 12
|
defaultrespawntime = 12
|
||||||
defaultdropstyle = 1
|
defaultdropstyle = 1
|
||||||
|
dontcrunchcorpses = 1
|
||||||
endoom = "ENDOOM"
|
endoom = "ENDOOM"
|
||||||
player5start = 4001
|
player5start = 4001
|
||||||
drawreadthis = true
|
drawreadthis = true
|
||||||
|
|
|
@ -56,6 +56,7 @@ gameinfo
|
||||||
nightmarefast = true
|
nightmarefast = true
|
||||||
pausesign = "PAUSED"
|
pausesign = "PAUSED"
|
||||||
gibfactor = 0.5
|
gibfactor = 0.5
|
||||||
|
dontcrunchcorpses = true
|
||||||
cursorpic = "herecurs"
|
cursorpic = "herecurs"
|
||||||
textscreenx = 20
|
textscreenx = 20
|
||||||
textscreeny = 5
|
textscreeny = 5
|
||||||
|
|
Loading…
Reference in a new issue