mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-10 23:31:50 +00:00
Hack to make sure even (extra)subsectors without planepolys have segs adjusted
this fixes a crash in (old) GFZ2 at the ramp as a result of creating pv1/pv2. This probably means before pv1/pv2 there could have been some silly typecasting from vertex_t to polyvertex_t to get fixed vertex coords and such...
This commit is contained in:
parent
90cfa5ef16
commit
09eecd36b4
1 changed files with 23 additions and 21 deletions
|
@ -878,8 +878,8 @@ static void AdjustSegs(void)
|
|||
count = subsectors[i].numlines;
|
||||
lseg = &segs[subsectors[i].firstline];
|
||||
p = extrasubsectors[i].planepoly;
|
||||
if (!p)
|
||||
continue;
|
||||
//if (!p)
|
||||
//continue;
|
||||
for (; count--; lseg++)
|
||||
{
|
||||
float distv1,distv2,tmp;
|
||||
|
@ -892,6 +892,7 @@ static void AdjustSegs(void)
|
|||
continue;
|
||||
#endif
|
||||
|
||||
if (p) {
|
||||
for (j = 0; j < p->numpts; j++)
|
||||
{
|
||||
distv1 = p->pts[j].x - FIXED_TO_FLOAT(lseg->v1->x);
|
||||
|
@ -912,7 +913,8 @@ static void AdjustSegs(void)
|
|||
nearv2 = distv2;
|
||||
}
|
||||
}
|
||||
if (nearv1 <= NEARDIST*NEARDIST)
|
||||
}
|
||||
if (p && nearv1 <= NEARDIST*NEARDIST)
|
||||
// share vertice with segs
|
||||
lseg->pv1 = &(p->pts[v1found]);
|
||||
else
|
||||
|
@ -927,7 +929,7 @@ static void AdjustSegs(void)
|
|||
pv->y = FIXED_TO_FLOAT(lseg->v1->y);
|
||||
lseg->pv1 = pv;
|
||||
}
|
||||
if (nearv2 <= NEARDIST*NEARDIST)
|
||||
if (p && nearv2 <= NEARDIST*NEARDIST)
|
||||
lseg->pv2 = &(p->pts[v2found]);
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue