diff --git a/Source/g_game.c b/Source/g_game.c index 2c61ba29..7b93ca0d 100644 --- a/Source/g_game.c +++ b/Source/g_game.c @@ -2375,6 +2375,10 @@ byte *G_ReadOptions(byte *demo_p) for (i=0; i < COMP_TOTAL; i++) comp[i] = compatibility; + // [FG] In Boom, monsters did not stay on a lift + comp[comp_staylift] = 1; + // [FG] Boom did not prevent zombies from exiting levels + comp[comp_zombie] = 1; // [FG] Boom never had the 3-key door bug comp[comp_3keydoor] = 1; diff --git a/Source/p_floor.c b/Source/p_floor.c index 0fd9df51..c12a9546 100644 --- a/Source/p_floor.c +++ b/Source/p_floor.c @@ -816,12 +816,20 @@ int EV_BuildStairs if (tsec->floorpic != texture) continue; + if (demo_compatibility || demo_version >= 203) + { height += stairsize; // killough 10/98: intentionally left this way + } // if sector's floor already moving, look for another if (P_SectorActive(floor_special,tsec)) //jff 2/22/98 continue; + if (!demo_compatibility && demo_version < 203) + { + height += stairsize; + } + sec = tsec; secnum = newsecnum; @@ -849,7 +857,7 @@ int EV_BuildStairs // [FG] Compatibility bug in EV_BuildStairs // http://prboom.sourceforge.net/mbf-bugs.html - if (!comp[comp_stairs] && !demo_compatibility) // killough 10/98: compatibility option + if ((!comp[comp_stairs] || demo_version < 203) && !demo_compatibility) // killough 10/98: compatibility option secnum = osecnum; //jff 3/4/98 restore loop index } return rtn; diff --git a/Source/p_sight.c b/Source/p_sight.c index ad78e455..8a99ffd4 100644 --- a/Source/p_sight.c +++ b/Source/p_sight.c @@ -250,7 +250,7 @@ boolean P_CheckSight(mobj_t *t1, mobj_t *t2) // killough 11/98: shortcut for melee situations // [FG] Compatibility bug in P_CheckSight // http://prboom.sourceforge.net/mbf-bugs.html - if (t1->subsector == t2->subsector && !demo_compatibility) // same subsector? obviously visible + if (t1->subsector == t2->subsector && demo_version >= 203) // same subsector? obviously visible return true; // An unobstructed LOS is possible.