mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-22 11:22:18 -04:00
add game version specific differences
This implements the subtle differences found in the three variants of DOOM.EXE version 1.9. The code was taken from PrBoom+ and Chocolate Doom, respectively. I decided to go without the original comments, the code has been commented well enough in other source ports. @fragglet Do you think these are all the relevant differences?
This commit is contained in:
parent
5ce7ef8211
commit
7e6ff37fdb
@ -2133,6 +2133,16 @@ void A_BossDeath(mobj_t *mo)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// [FG] game version specific differences
|
||||||
|
if (demo_compatibility && gameversion < exe_ultimate)
|
||||||
|
{
|
||||||
|
if (gamemap != 8)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (mo->type == MT_BRUISER && gameepisode != 1)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
switch(gameepisode)
|
switch(gameepisode)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -469,8 +469,13 @@ floater:
|
|||||||
{
|
{
|
||||||
// hit the floor
|
// hit the floor
|
||||||
|
|
||||||
if (mo->flags & MF_SKULLFLY)
|
// [FG] game version specific differences
|
||||||
|
int correct_lost_soul_bounce = !demo_compatibility || gameversion >= exe_ultimate;
|
||||||
|
|
||||||
|
if (correct_lost_soul_bounce && mo->flags & MF_SKULLFLY)
|
||||||
|
{
|
||||||
mo->momz = -mo->momz; // the skull slammed into something
|
mo->momz = -mo->momz; // the skull slammed into something
|
||||||
|
}
|
||||||
|
|
||||||
if (mo->momz < 0)
|
if (mo->momz < 0)
|
||||||
{
|
{
|
||||||
@ -496,6 +501,12 @@ floater:
|
|||||||
|
|
||||||
mo->z = mo->floorz;
|
mo->z = mo->floorz;
|
||||||
|
|
||||||
|
// [FG] game version specific differences
|
||||||
|
if (!correct_lost_soul_bounce && mo->flags & MF_SKULLFLY)
|
||||||
|
{
|
||||||
|
mo->momz = -mo->momz;
|
||||||
|
}
|
||||||
|
|
||||||
if (!((mo->flags ^ MF_MISSILE) & (MF_MISSILE | MF_NOCLIP)))
|
if (!((mo->flags ^ MF_MISSILE) & (MF_MISSILE | MF_NOCLIP)))
|
||||||
{
|
{
|
||||||
P_ExplodeMissile (mo);
|
P_ExplodeMissile (mo);
|
||||||
|
@ -72,7 +72,11 @@ int EV_Teleport(line_t *line, int side, mobj_t *thing)
|
|||||||
if (!P_TeleportMove(thing, m->x, m->y, false)) // killough 8/9/98
|
if (!P_TeleportMove(thing, m->x, m->y, false)) // killough 8/9/98
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
// [FG] game version specific differences
|
||||||
|
if (demo_compatibility && gameversion != exe_final)
|
||||||
|
{
|
||||||
thing->z = thing->floorz;
|
thing->z = thing->floorz;
|
||||||
|
}
|
||||||
|
|
||||||
if (player)
|
if (player)
|
||||||
player->viewz = thing->z + player->viewheight;
|
player->viewz = thing->z + player->viewheight;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user