diff --git a/src/p_enemy.cpp b/src/p_enemy.cpp index 980025d96d..919c11bec5 100644 --- a/src/p_enemy.cpp +++ b/src/p_enemy.cpp @@ -2545,6 +2545,10 @@ static bool P_CheckForResurrection(AActor *self, bool usevilestates) S_Sound (corpsehit, CHAN_BODY, "vile/raise", 1, ATTN_IDLE); info = corpsehit->GetDefault (); + if (corpsehit->state == corpsehit->FindState(NAME_GenericCrush)) + { + corpsehit->Translation = info->Translation; // Clean up bloodcolor translation from crushed corpses + } if (ib_compatflags & BCOMPATF_VILEGHOSTS) { corpsehit->height <<= 2; @@ -2563,7 +2567,6 @@ static bool P_CheckForResurrection(AActor *self, bool usevilestates) corpsehit->RenderStyle = STYLE_Translucent; } } - corpsehit->Translation = info->Translation; // Clean up bloodcolor translation from crushed corpses } else { diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 9b9824264e..7ecf499872 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -1018,7 +1018,7 @@ bool AActor::Grind(bool items) if (state == NULL // Only use the default crushed state if: && !(flags & MF_NOBLOOD) // 1. the monster bleeeds, && (i_compatflags & COMPATF_CORPSEGIBS) // 2. the compat setting is on, - && player != NULL) // 3. and the thing isn't a player. + && player == NULL) // 3. and the thing isn't a player. { isgeneric = true; state = FindState(NAME_GenericCrush); diff --git a/wadsrc/static/compatibility.txt b/wadsrc/static/compatibility.txt index dbaadf6fc4..b2a168ce79 100644 --- a/wadsrc/static/compatibility.txt +++ b/wadsrc/static/compatibility.txt @@ -86,6 +86,7 @@ F84AB4557464A383E93F37CD3A82AC48 // MM2 map03 2EEB1E12FA9F9545DE9D99990A4A78E5 // Icarus map24 65A53A09A09525AE42EA210BF879CD37 // Plutonia 2 map32 2499CF9A9351BE9BC4E9C66FC9F291A7 // Requiem map23 +3CA5493FEFF2E27BFD4181E6C4A3C2BF // The Waterfront map01 { corpsegibs vileghosts