Pass parameters to EV_DoPolyObjFlag in a struct and not via the line
This commit is contained in:
parent
02c347ada2
commit
482adc6124
|
@ -2691,7 +2691,7 @@ void T_PolyObjFlag(polymove_t *th)
|
||||||
Polyobj_attachToSubsec(po); // relink to subsector
|
Polyobj_attachToSubsec(po); // relink to subsector
|
||||||
}
|
}
|
||||||
|
|
||||||
INT32 EV_DoPolyObjFlag(line_t *pfdata)
|
INT32 EV_DoPolyObjFlag(polyflagdata_t *pfdata)
|
||||||
{
|
{
|
||||||
polyobj_t *po;
|
polyobj_t *po;
|
||||||
polyobj_t *oldpo;
|
polyobj_t *oldpo;
|
||||||
|
@ -2699,9 +2699,9 @@ INT32 EV_DoPolyObjFlag(line_t *pfdata)
|
||||||
size_t i;
|
size_t i;
|
||||||
INT32 start;
|
INT32 start;
|
||||||
|
|
||||||
if (!(po = Polyobj_GetForNum(pfdata->tag)))
|
if (!(po = Polyobj_GetForNum(pfdata->polyObjNum)))
|
||||||
{
|
{
|
||||||
CONS_Debug(DBG_POLYOBJ, "EV_DoPolyFlag: bad polyobj %d\n", pfdata->tag);
|
CONS_Debug(DBG_POLYOBJ, "EV_DoPolyFlag: bad polyobj %d\n", pfdata->polyObjNum);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2724,11 +2724,11 @@ INT32 EV_DoPolyObjFlag(line_t *pfdata)
|
||||||
po->thinker = &th->thinker;
|
po->thinker = &th->thinker;
|
||||||
|
|
||||||
// set fields
|
// set fields
|
||||||
th->polyObjNum = pfdata->tag;
|
th->polyObjNum = pfdata->polyObjNum;
|
||||||
th->distance = 0;
|
th->distance = 0;
|
||||||
th->speed = P_AproxDistance(pfdata->dx, pfdata->dy)>>FRACBITS;
|
th->speed = pfdata->speed;
|
||||||
th->angle = R_PointToAngle2(pfdata->v1->x, pfdata->v1->y, pfdata->v2->x, pfdata->v2->y)>>ANGLETOFINESHIFT;
|
th->angle = pfdata->angle;
|
||||||
th->momx = sides[pfdata->sidenum[0]].textureoffset>>FRACBITS;
|
th->momx = pfdata->momx;
|
||||||
|
|
||||||
// save current positions
|
// save current positions
|
||||||
for (i = 0; i < po->numVertices; ++i)
|
for (i = 0; i < po->numVertices; ++i)
|
||||||
|
@ -2740,7 +2740,7 @@ INT32 EV_DoPolyObjFlag(line_t *pfdata)
|
||||||
start = 0;
|
start = 0;
|
||||||
while ((po = Polyobj_GetChild(oldpo, &start)))
|
while ((po = Polyobj_GetChild(oldpo, &start)))
|
||||||
{
|
{
|
||||||
pfdata->tag = po->id;
|
pfdata->polyObjNum = po->id;
|
||||||
EV_DoPolyObjFlag(pfdata);
|
EV_DoPolyObjFlag(pfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -298,6 +298,14 @@ typedef struct polyrotdisplacedata_s
|
||||||
UINT8 turnobjs;
|
UINT8 turnobjs;
|
||||||
} polyrotdisplacedata_t;
|
} polyrotdisplacedata_t;
|
||||||
|
|
||||||
|
typedef struct polyflagdata_s
|
||||||
|
{
|
||||||
|
INT32 polyObjNum;
|
||||||
|
INT32 speed;
|
||||||
|
UINT32 angle;
|
||||||
|
fixed_t momx;
|
||||||
|
} polyflagdata_t;
|
||||||
|
|
||||||
typedef struct polyfadedata_s
|
typedef struct polyfadedata_s
|
||||||
{
|
{
|
||||||
INT32 polyObjNum;
|
INT32 polyObjNum;
|
||||||
|
@ -337,7 +345,7 @@ INT32 EV_DoPolyObjWaypoint(polywaypointdata_t *);
|
||||||
INT32 EV_DoPolyObjRotate(polyrotdata_t *);
|
INT32 EV_DoPolyObjRotate(polyrotdata_t *);
|
||||||
INT32 EV_DoPolyObjDisplace(polydisplacedata_t *);
|
INT32 EV_DoPolyObjDisplace(polydisplacedata_t *);
|
||||||
INT32 EV_DoPolyObjRotDisplace(polyrotdisplacedata_t *);
|
INT32 EV_DoPolyObjRotDisplace(polyrotdisplacedata_t *);
|
||||||
INT32 EV_DoPolyObjFlag(struct line_s *);
|
INT32 EV_DoPolyObjFlag(polyflagdata_t *);
|
||||||
INT32 EV_DoPolyObjFade(polyfadedata_t *);
|
INT32 EV_DoPolyObjFade(polyfadedata_t *);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7282,8 +7282,15 @@ void P_SpawnSpecials(boolean fromnetsave)
|
||||||
switch (lines[i].special)
|
switch (lines[i].special)
|
||||||
{
|
{
|
||||||
case 30: // Polyobj_Flag
|
case 30: // Polyobj_Flag
|
||||||
EV_DoPolyObjFlag(&lines[i]);
|
{
|
||||||
|
polyflagdata_t pfd;
|
||||||
|
pfd.polyObjNum = lines[i].tag;
|
||||||
|
pfd.speed = P_AproxDistance(lines[i].dx, lines[i].dy) >> FRACBITS;
|
||||||
|
pfd.angle = R_PointToAngle2(lines[i].v1->x, lines[i].v1->y, lines[i].v2->x, lines[i].v2->y) >> ANGLETOFINESHIFT;
|
||||||
|
pfd.momx = sides[lines[i].sidenum[0]].textureoffset >> FRACBITS;
|
||||||
|
EV_DoPolyObjFlag(&pfd);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 31: // Polyobj_Displace
|
case 31: // Polyobj_Displace
|
||||||
PolyDisplace(&lines[i]);
|
PolyDisplace(&lines[i]);
|
||||||
|
|
Loading…
Reference in New Issue