diff options
author | Simon Howard | 2005-10-13 22:23:55 +0000 |
---|---|---|
committer | Simon Howard | 2005-10-13 22:23:55 +0000 |
commit | 29571c16efee0d4d4a864a9ea222f5c3c2add4c3 (patch) | |
tree | 70d46979b7be87ca5479ce9180294474b9bc4535 | |
parent | b9a5732a74152bf8ee21e86fc23fe43d3b235f4c (diff) | |
download | chocolate-doom-29571c16efee0d4d4a864a9ea222f5c3c2add4c3.tar.gz chocolate-doom-29571c16efee0d4d4a864a9ea222f5c3c2add4c3.tar.bz2 chocolate-doom-29571c16efee0d4d4a864a9ea222f5c3c2add4c3.zip |
Fix logic for lost soul bounce
Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 191
-rw-r--r-- | src/p_mobj.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/p_mobj.c b/src/p_mobj.c index 9d75d909..c73780f0 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -1,7 +1,7 @@ // Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // -// $Id: p_mobj.c 14 2005-07-23 17:46:19Z fraggle $ +// $Id: p_mobj.c 191 2005-10-13 22:23:55Z fraggle $ // // Copyright(C) 1993-1996 Id Software, Inc. // Copyright(C) 2005 Simon Howard @@ -22,6 +22,9 @@ // 02111-1307, USA. // // $Log$ +// Revision 1.4 2005/10/13 22:23:55 fraggle +// Fix logic for lost soul bounce +// // Revision 1.3 2005/07/23 17:46:19 fraggle // Import bouncing lost soul fix from prboom // @@ -38,7 +41,7 @@ //----------------------------------------------------------------------------- static const char -rcsid[] = "$Id: p_mobj.c 14 2005-07-23 17:46:19Z fraggle $"; +rcsid[] = "$Id: p_mobj.c 191 2005-10-13 22:23:55Z fraggle $"; #include "i_system.h" #include "z_zone.h" @@ -313,8 +316,20 @@ void P_ZMovement (mobj_t* mo) // Final Doom and Ultimate Doom. So we test demo_compatibility *and* // gamemission. (Note we assume that Doom1 is always Ult Doom, which // seems to hold for most published demos.) + // + // fraggle - cph got the logic here slightly wrong. There are three + // versions of Doom 1.9: + // + // * The version used in registered doom 1.9 + doom2 - no bounce + // * The version used in ultimate doom - has bounce + // * The version used in final doom - has bounce + // + // So we need to check that this is either retail or commercial + // (but not doom2) - int correct_lost_soul_bounce = gamemission != doom2; + int correct_lost_soul_bounce + = (gamemode == retail || gamemode == commercial) + && gamemission != doom2; if (correct_lost_soul_bounce && mo->flags & MF_SKULLFLY) { |