Abstract Pack fixes

This commit is contained in:
GenericHeroGuy 2025-07-19 02:28:39 +02:00
parent eb5c5c0041
commit b21f70854e
2 changed files with 28 additions and 59 deletions

View file

@ -217,71 +217,34 @@ static void Polyobj_GetInfo(polyobj_t *po, line_t *line)
if (po->parent == po->id) // do not allow a self-reference
po->parent = -1;
if (mapnamespace == MNS_SRB2KART)
po->translucency = max(min(line->args[1], NUMTRANSMAPS), 0);
else
po->translucency = max(min(line->args[2], NUMTRANSMAPS), 0);
po->translucency = max(min(line->args[2], NUMTRANSMAPS), 0);
if (mapnamespace != MNS_SRB2KART)
{
po->flags = POF_SOLID|POF_TESTHEIGHT|POF_RENDERSIDES|POF_RENDERPLANES;
po->flags = POF_SOLID|POF_TESTHEIGHT|POF_RENDERSIDES|POF_RENDERPLANES;
if (line->args[3] & TMPF_NOINSIDES)
po->flags |= POF_ONESIDE;
if (line->args[3] & TMPF_NOINSIDES)
po->flags |= POF_ONESIDE;
if (line->args[3] & TMPF_INTANGIBLE)
po->flags &= ~POF_SOLID;
if (line->args[3] & TMPF_INTANGIBLE)
po->flags &= ~POF_SOLID;
if (line->args[3] & TMPF_PUSHABLESTOP)
po->flags |= POF_PUSHABLESTOP;
if (line->args[3] & TMPF_PUSHABLESTOP)
po->flags |= POF_PUSHABLESTOP;
if (line->args[3] & TMPF_INVISIBLEPLANES)
po->flags &= ~POF_RENDERPLANES;
if (line->args[3] & TMPF_INVISIBLEPLANES)
po->flags &= ~POF_RENDERPLANES;
/*if (line->args[3] & TMPF_DONTCLIPPLANES)
po->flags &= ~P*OF_CLIPPLANES;*/
/*if (line->args[3] & TMPF_DONTCLIPPLANES)
po->flags &= ~POF_CLIPPLANES;*/
if (line->args[3] & TMPF_SPLAT)
po->flags |= POF_SPLAT;
if (line->args[3] & TMPF_SPLAT)
po->flags |= POF_SPLAT;
if (line->args[3] & TMPF_EXECUTOR) // Has a linedef executor
po->flags |= POF_LDEXEC;
if (line->args[3] & TMPF_EXECUTOR) // Has a linedef executor
po->flags |= POF_LDEXEC;
// TODO: support customized damage somehow?
if (line->args[3] & TMPF_CRUSH)
po->damage = 3;
}
else
{
po->flags = POF_SOLID|POF_TESTHEIGHT|POF_RENDERSIDES;
if (line->args[3] & TMPF_NOINSIDES)
po->flags |= POF_ONESIDE;
if (line->args[3] & TMPF_INTANGIBLE)
po->flags &= ~POF_SOLID;
if (line->args[3] & TMPF_PUSHABLESTOP)
po->flags |= POF_PUSHABLESTOP;
// WHY IS THIS INVERTED AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
if (line->args[3] & TMPF_INVISIBLEPLANES)
po->flags |= POF_RENDERPLANES;
/*if (line->args[3] & TMPF_DONTCLIPPLANES)
po->flags &= ~*P*OF_CLIPPLANES;*/
if (line->args[3] & TMPF_SPLAT)
po->flags |= POF_SPLAT;
if (line->args[3] & TMPF_EXECUTOR) // Has a linedef executor
po->flags |= POF_LDEXEC;
// TODO: support customized damage somehow?
if (line->args[3] & TMPF_CRUSH)
po->damage = 3;
}
// TODO: support customized damage somehow?
if (line->args[3] & TMPF_CRUSH)
po->damage = 3;
po->triggertag = line->args[4];
}

View file

@ -5201,6 +5201,12 @@ static void P_ConvertBinaryLinedefTypes(void)
? (sides[lines[paramline].sidenum[0]].textureoffset >> FRACBITS)
: ((lines[paramline].frontsector->floorheight >> FRACBITS) / 100);
if (mapnamespace == MNS_SRB2KART)
{
paramline = i; // flags from the start line!?
lines[i].args[2] = 0; // no such thing as translucency (only from linedef type 491)
}
//Flags
if (lines[paramline].flags & ML_SKEWTD)
lines[i].args[3] |= TMPF_NOINSIDES;
@ -6239,13 +6245,13 @@ static void P_ConvertBinaryLinedefTypes(void)
lines[i].args[0] = sides[lines[i].sidenum[0]].textureoffset >> FRACBITS;
break;
case 442: //Change object type state
lines[i].args[2] = tag;
lines[i].args[0] = tag;
P_WriteDuplicateText(sides[lines[i].sidenum[0]].text, &lines[i].stringargs[0]);
if (lines[i].sidenum[1] == 0xffff)
lines[i].args[1] = 1;
else
{
lines[i].args[3] = 0;
lines[i].args[1] = 0;
P_WriteDuplicateText(sides[lines[i].sidenum[1]].text, &lines[i].stringargs[1]);
}
break;
@ -6725,7 +6731,7 @@ static void P_ConvertBinaryLinedefTypes(void)
lines[i].args[2] |= TMSL_NOPHYSICS;
if (lines[i].flags & ML_NONET)
lines[i].args[2] |= TMSL_DYNAMIC;
if (lines[i].flags & ML_TFERLINE)
if (mapnamespace != MNS_SRB2KART && lines[i].flags & ML_TFERLINE)
lines[i].args[2] |= TMSL_COPY;
lines[i].special = 700;