- added a compatibility setting for Perdition's Gate MAP31 which was having render issues with an unsupported vanilla effect.

This commit is contained in:
Christoph Oelckers 2018-02-27 09:52:42 +01:00
parent 07f168a58b
commit 9a8e724761
2 changed files with 43 additions and 0 deletions

View file

@ -92,6 +92,7 @@ enum
CP_SETTHINGSKILLS,
CP_SETSECTORTEXTURE,
CP_SETSECTORLIGHT,
CP_SETLINESECTORREF,
};
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
@ -283,6 +284,18 @@ void ParseCompatibility()
CompatParams.Push(sc.Number);
}
}
else if (sc.Compare("setlinesectorref"))
{
if (flags.ExtCommandIndex == ~0u) flags.ExtCommandIndex = CompatParams.Size();
CompatParams.Push(CP_SETLINESECTORREF);
sc.MustGetNumber();
CompatParams.Push(sc.Number);
sc.MustGetString();
CompatParams.Push(sc.MustMatchString(LineSides));
sc.MustGetNumber();
CompatParams.Push(sc.Number);
flags.CompatFlags[SLOT_BCOMPAT] |= BCOMPATF_REBUILDNODES;
}
else if (sc.Compare("clearlinespecial"))
{
if (flags.ExtCommandIndex == ~0u) flags.ExtCommandIndex = CompatParams.Size();
@ -719,6 +732,22 @@ void SetCompatibilityParams()
i += 3;
break;
}
case CP_SETLINESECTORREF:
{
if ((unsigned)CompatParams[i + 1] < level.lines.Size())
{
line_t *line = &level.lines[CompatParams[i + 1]];
assert(line != nullptr);
side_t *side = line->sidedef[CompatParams[i + 2]];
if (side != nullptr && (unsigned)CompatParams[i + 3] < level.sectors.Size())
{
side->sector = &level.sectors[CompatParams[i + 3]];
}
}
i += 4;
break;
}
}
}
}

View file

@ -868,3 +868,17 @@ CA3773ED313E8899311F3DD0CA195A68 // e3m6
{
shorttex
}
FCCA97FC851F6473EAA069F74247B317 // pg-raw.wad map31
{
setlinesectorref 331 front 74
setlinesectorref 326 front 74
setlinesectorref 497 front 74
setlinesectorref 474 front 74
setlinesectorref 471 front 74
setlinesectorref 327 front 74
setlinesectorref 328 front 74
setlinesectorref 329 front 74
setsectortag 74 4
setlinespecial 357 Transfer_Heights 4 2 0 0 0
}