Skip to content

Commit

Permalink
Fix use of Retro bits = CRUSHABLE
Browse files Browse the repository at this point in the history
  • Loading branch information
bradharding committed Jan 16, 2025
1 parent 5b4d8a9 commit 25455cb
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 35 deletions.
3 changes: 3 additions & 0 deletions releasenotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
* The vertical offsets of the sprites of cacodemons, lost souls and pain elementals have improved when the `r_fixspriteoffsets` CVAR is `on`.
* Minor improvements have been made to the fuzz effect applied to spectres.
* The `vid_scaleapi` CVAR is now back to `direct3d9` by default.
* These changes have been made to the support of `DEHACKED` lumps:
* `Retro bits = CRUSHABLE` now works as intended.
* The `Hit points` of decorative corpses have been changed from `0` back to `1000`.

![](https://github.com/bradharding/www.doomretro.com/raw/master/wiki/bigdivider.png)

Expand Down
68 changes: 34 additions & 34 deletions src/info.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
{ \
/* doomednum */ -1, \
/* spawnstate */ 0, \
/* spawnhealth */ 0, \
/* spawnhealth */ 1000, \
/* gibhealth */ 0, \
/* giblevel */ 0, \
/* seestate */ S_NULL, \
Expand Down Expand Up @@ -121,7 +121,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_DROPOFF | MF_PICKUP | MF_FRIEND),
/* flags2 */ (MF2_PASSMOBJ | MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_PASSMOBJ | MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -171,7 +171,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_posact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_POSS_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -221,7 +221,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_posact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_SPOS_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -271,7 +271,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_vilact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -371,7 +371,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_skeact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_SKEL_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -521,7 +521,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_posact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_FATT_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -621,7 +621,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_posact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP | MF2_NOMIRROREDCORPSE),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP | MF2_NOMIRROREDCORPSE),
/* raisestate */ S_CPOS_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -671,7 +671,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_bgact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_TROO_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -721,7 +721,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_SARG_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -771,7 +771,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_FUZZ | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_SARG_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -821,7 +821,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_FLOAT | MF_NOGRAVITY | MF_COUNTKILL),
/* flags2 */ (MF2_PASSMOBJ | MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_PASSMOBJ | MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_HEAD_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -871,7 +871,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_BOSS_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -971,7 +971,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_BOS2_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -1071,7 +1071,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -1121,7 +1121,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_bspact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_BSPI_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -1171,7 +1171,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dmact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP | MF2_NOMIRROREDCORPSE),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP | MF2_NOMIRROREDCORPSE),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -1271,7 +1271,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_posact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_SSWV_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down Expand Up @@ -5644,7 +5644,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadCacodemon,
/* spawnstate */ S_HEAD_DIE6,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand All @@ -5669,7 +5669,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ MF_CORPSE,
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_DECORATION | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_DECORATION | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand All @@ -5694,7 +5694,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadPlayer,
/* spawnstate */ S_PLAY_DIE7,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand All @@ -5719,7 +5719,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ MF_CORPSE,
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_DECORATION | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_DECORATION | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand All @@ -5744,7 +5744,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadZombieman,
/* spawnstate */ S_POSS_DIE5,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand All @@ -5769,7 +5769,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ MF_CORPSE,
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_DECORATION | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_DECORATION | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand All @@ -5794,7 +5794,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadDemon,
/* spawnstate */ S_SARG_DIE6,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand All @@ -5819,7 +5819,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ MF_CORPSE,
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_DECORATION | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_DECORATION | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand All @@ -5844,7 +5844,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadLostSoulInvisible,
/* spawnstate */ S_SKULL_DIE6,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand Down Expand Up @@ -5894,7 +5894,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadImp,
/* spawnstate */ S_TROO_DIE5,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand All @@ -5919,7 +5919,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ MF_CORPSE,
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_DECORATION | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_DECORATION | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand All @@ -5944,7 +5944,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ DeadShotgunGuy,
/* spawnstate */ S_SPOS_DIE5,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 0,
/* seestate */ S_NULL,
Expand All @@ -5969,7 +5969,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_none,
/* flags */ MF_CORPSE,
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_DECORATION | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_DECORATION | MF2_FOOTCLIP),
/* raisestate */ S_NULL,
/* frames */ 0,
/* fullbright */ false,
Expand All @@ -5994,7 +5994,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ BloodyMess1,
/* spawnstate */ S_PLAY_XDIE9,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 1,
/* seestate */ S_NULL,
Expand Down Expand Up @@ -6044,7 +6044,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
{
/* doomednum */ BloodyMess2,
/* spawnstate */ S_PLAY_XDIE9,
/* spawnhealth */ 0,
/* spawnhealth */ 1000,
/* gibhealth */ 0,
/* giblevel */ 1,
/* seestate */ S_NULL,
Expand Down Expand Up @@ -7069,7 +7069,7 @@ mobjinfo_t original_mobjinfo[NUMMOBJTYPES] =
/* damage */ 0,
/* activesound */ sfx_dgact,
/* flags */ (MF_SOLID | MF_SHOOTABLE | MF_COUNTKILL),
/* flags2 */ (MF2_CASTSHADOW | MF2_CRUSHABLE | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* flags2 */ (MF2_CASTSHADOW | MF2_NOLIQUIDBOB | MF2_FOOTCLIP),
/* raisestate */ S_DOGS_RAISE1,
/* frames */ 0,
/* fullbright */ false,
Expand Down
2 changes: 1 addition & 1 deletion src/p_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -2126,7 +2126,7 @@ static void PIT_ChangeSector(mobj_t *thing)
flags = thing->flags;

// crunch bodies to giblets
if (thing->health <= 0 && (thing->flags2 & MF2_CRUSHABLE))
if ((flags & MF_CORPSE) || (thing->flags2 & MF2_CRUSHABLE))
{
if (thing->player)
{
Expand Down

0 comments on commit 25455cb

Please sign in to comment.