- Fixed: Unmorphing while invulnerable was blocked.

SVN r1855 (trunk)
This commit is contained in:
Christoph Oelckers 2009-09-17 20:58:43 +00:00
parent 2fbcc13652
commit 5613c3e14f
2 changed files with 8 additions and 4 deletions

View file

@ -1,4 +1,7 @@
September 17, 2009 (Changes by Graf Zahl) September 17, 2009 (Changes by Graf Zahl)
- Fixed: Unmorphing while invulnerable was blocked.
- Various cleanup changes.
- fixed Dog's class name in DEHSUPP.
- Renamed plane flags from SECF_* to PLANEF_*. - Renamed plane flags from SECF_* to PLANEF_*.
- Changed Heretic's plat raise type to use a flag to block further sector movement - Changed Heretic's plat raise type to use a flag to block further sector movement
instead of keeping the dead thinker around to block the sector. instead of keeping the dead thinker around to block the sector.

View file

@ -192,10 +192,11 @@ bool P_UndoPlayerMorph (player_t *activator, player_t *player, bool force)
return false; return false;
} }
if ((pmo->flags2 & MF2_INVULNERABLE) && ((player != activator) || (!(player->MorphStyle & MORPH_WHENINVULNERABLE)))) if ((pmo->flags2 & MF2_INVULNERABLE) // If the player is invulnerable
{ // Immune when invulnerable unless this is something we initiated. && ((player != activator) // and either did not decide to unmorph,
// If the WORLD is the initiator, the same player should be given || (!((player->MorphStyle & MORPH_WHENINVULNERABLE) // or the morph style does not allow it
// as the activator; WORLD initiated actions should always succeed. && (player->MorphStyle != MORPH_OLDEFFECTS))))) // (but standard morph styles always allow it),
{ // Then the player is immune to the unmorph.
return false; return false;
} }