mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-11 07:12:16 +00:00
- Removed the 64 seg limit for polyobjects defined with Polyobj_ExplicitLine.
- Polyobj_StartLine and Polyobj_ExplicitLine can now set a line's ID. This is the fourth parameter for Polyobj_StartLine and the fifth parameter for Polyobj_ExplicitLine. SVN r310 (trunk)
This commit is contained in:
parent
a69d7f529e
commit
cf3b1bfd6e
3 changed files with 27 additions and 21 deletions
|
@ -1,4 +1,8 @@
|
||||||
August 24, 2006
|
August 24, 2006
|
||||||
|
- Removed the 64 seg limit for polyobjects defined with Polyobj_ExplicitLine.
|
||||||
|
- Polyobj_StartLine and Polyobj_ExplicitLine can now set a line's ID. This is
|
||||||
|
the fourth parameter for Polyobj_StartLine and the fifth parameter for
|
||||||
|
Polyobj_ExplicitLine.
|
||||||
- Added support for DDS textures compressed with DXT1, DXT3, or DXT5.
|
- Added support for DDS textures compressed with DXT1, DXT3, or DXT5.
|
||||||
|
|
||||||
August 23, 2006
|
August 23, 2006
|
||||||
|
|
|
@ -1649,21 +1649,30 @@ void P_AdjustLine (line_t *ld)
|
||||||
// the tag doesn't always go into the first arg.
|
// the tag doesn't always go into the first arg.
|
||||||
if (level.flags & LEVEL_HEXENFORMAT)
|
if (level.flags & LEVEL_HEXENFORMAT)
|
||||||
{
|
{
|
||||||
if (ld->special == Line_SetIdentification)
|
switch (ld->special)
|
||||||
{
|
{
|
||||||
|
case Line_SetIdentification:
|
||||||
ld->id = ld->args[0];
|
ld->id = ld->args[0];
|
||||||
ld->flags |= ld->args[1]<<16;
|
ld->flags |= ld->args[1]<<16;
|
||||||
}
|
break;
|
||||||
else if (ld->special == TranslucentLine)
|
|
||||||
{
|
case TranslucentLine:
|
||||||
ld->id = ld->args[0];
|
ld->id = ld->args[0];
|
||||||
ld->flags |= ld->args[3]<<16;
|
ld->flags |= ld->args[3]<<16;
|
||||||
}
|
break;
|
||||||
else if (
|
|
||||||
ld->special == Teleport_Line ||
|
case Teleport_Line:
|
||||||
ld->special == Scroll_Texture_Model)
|
case Scroll_Texture_Model:
|
||||||
{
|
|
||||||
ld->id = ld->args[0];
|
ld->id = ld->args[0];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Polyobj_StartLine:
|
||||||
|
ld->id = ld->args[3];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Polyobj_ExplicitLine:
|
||||||
|
ld->id = ld->args[4];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1260,9 +1260,6 @@ static void SpawnPolyobj (int index, int tag, int type)
|
||||||
unsigned int ii;
|
unsigned int ii;
|
||||||
int i;
|
int i;
|
||||||
int j;
|
int j;
|
||||||
int psIndex;
|
|
||||||
int psIndexOld;
|
|
||||||
seg_t *polySegList[PO_MAXPOLYSEGS];
|
|
||||||
|
|
||||||
for (ii = 0; ii < KnownPolySegs.Size(); ++ii)
|
for (ii = 0; ii < KnownPolySegs.Size(); ++ii)
|
||||||
{
|
{
|
||||||
|
@ -1302,11 +1299,12 @@ static void SpawnPolyobj (int index, int tag, int type)
|
||||||
}
|
}
|
||||||
if (!polyobjs[index].segs)
|
if (!polyobjs[index].segs)
|
||||||
{ // didn't find a polyobj through PO_LINE_START
|
{ // didn't find a polyobj through PO_LINE_START
|
||||||
psIndex = 0;
|
TArray<seg_t *> polySegList;
|
||||||
|
unsigned int psIndexOld;
|
||||||
polyobjs[index].numsegs = 0;
|
polyobjs[index].numsegs = 0;
|
||||||
for (j = 1; j < PO_MAXPOLYSEGS; j++)
|
for (j = 1; j < PO_MAXPOLYSEGS; j++)
|
||||||
{
|
{
|
||||||
psIndexOld = psIndex;
|
psIndexOld = polySegList.Size();
|
||||||
for (ii = 0; ii < KnownPolySegs.Size(); ++ii)
|
for (ii = 0; ii < KnownPolySegs.Size(); ++ii)
|
||||||
{
|
{
|
||||||
i = KnownPolySegs[ii];
|
i = KnownPolySegs[ii];
|
||||||
|
@ -1322,13 +1320,8 @@ static void SpawnPolyobj (int index, int tag, int type)
|
||||||
}
|
}
|
||||||
if (segs[i].linedef->args[1] == j)
|
if (segs[i].linedef->args[1] == j)
|
||||||
{
|
{
|
||||||
polySegList[psIndex] = &segs[i];
|
polySegList.Push (&segs[i]);
|
||||||
polyobjs[index].numsegs++;
|
polyobjs[index].numsegs++;
|
||||||
psIndex++;
|
|
||||||
if (psIndex > PO_MAXPOLYSEGS)
|
|
||||||
{
|
|
||||||
I_Error ("SpawnPolyobj: psIndex > PO_MAXPOLYSEGS\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1347,7 +1340,7 @@ static void SpawnPolyobj (int index, int tag, int type)
|
||||||
KnownPolySegs[ii] = -1;
|
KnownPolySegs[ii] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (psIndex == psIndexOld)
|
if (polySegList.Size() == psIndexOld)
|
||||||
{ // Check if an explicit line order has been skipped.
|
{ // Check if an explicit line order has been skipped.
|
||||||
// A line has been skipped if there are any more explicit
|
// A line has been skipped if there are any more explicit
|
||||||
// lines with the current tag value. [RH] Can this actually happen?
|
// lines with the current tag value. [RH] Can this actually happen?
|
||||||
|
|
Loading…
Reference in a new issue