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;
|
count = subsectors[i].numlines;
|
||||||
lseg = &segs[subsectors[i].firstline];
|
lseg = &segs[subsectors[i].firstline];
|
||||||
p = extrasubsectors[i].planepoly;
|
p = extrasubsectors[i].planepoly;
|
||||||
if (!p)
|
//if (!p)
|
||||||
continue;
|
//continue;
|
||||||
for (; count--; lseg++)
|
for (; count--; lseg++)
|
||||||
{
|
{
|
||||||
float distv1,distv2,tmp;
|
float distv1,distv2,tmp;
|
||||||
|
@ -892,6 +892,7 @@ static void AdjustSegs(void)
|
||||||
continue;
|
continue;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (p) {
|
||||||
for (j = 0; j < p->numpts; j++)
|
for (j = 0; j < p->numpts; j++)
|
||||||
{
|
{
|
||||||
distv1 = p->pts[j].x - FIXED_TO_FLOAT(lseg->v1->x);
|
distv1 = p->pts[j].x - FIXED_TO_FLOAT(lseg->v1->x);
|
||||||
|
@ -912,7 +913,8 @@ static void AdjustSegs(void)
|
||||||
nearv2 = distv2;
|
nearv2 = distv2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nearv1 <= NEARDIST*NEARDIST)
|
}
|
||||||
|
if (p && nearv1 <= NEARDIST*NEARDIST)
|
||||||
// share vertice with segs
|
// share vertice with segs
|
||||||
lseg->pv1 = &(p->pts[v1found]);
|
lseg->pv1 = &(p->pts[v1found]);
|
||||||
else
|
else
|
||||||
|
@ -927,7 +929,7 @@ static void AdjustSegs(void)
|
||||||
pv->y = FIXED_TO_FLOAT(lseg->v1->y);
|
pv->y = FIXED_TO_FLOAT(lseg->v1->y);
|
||||||
lseg->pv1 = pv;
|
lseg->pv1 = pv;
|
||||||
}
|
}
|
||||||
if (nearv2 <= NEARDIST*NEARDIST)
|
if (p && nearv2 <= NEARDIST*NEARDIST)
|
||||||
lseg->pv2 = &(p->pts[v2found]);
|
lseg->pv2 = &(p->pts[v2found]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue