MCPcopy Create free account
hub / github.com/Meridian59/Meridian59 / GetObjectCoords

Function GetObjectCoords

roomedit/source/objects.cpp:1553–1648  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1551*/
1552
1553void GetObjectCoords (int objtype, SHORT objnum, SHORT *xpos, SHORT *ypos)
1554{
1555 SHORT n;
1556 LONG accx, accy, num;
1557 Thing *pThing;
1558 Vertex *pVertex;
1559 LineDef *pLineDef;
1560 Vertex *pv1;
1561 Vertex *pv2;
1562
1563 switch (objtype)
1564 {
1565 case OBJ_THINGS:
1566 assert (objnum >= 0 && objnum < NumThings);
1567 pThing = &Things[objnum];
1568
1569 *xpos = pThing->xpos;
1570 *ypos = pThing->ypos;
1571 break;
1572
1573 case OBJ_VERTEXES:
1574 assert_vnum(objnum);
1575 pVertex = &Vertexes[objnum];
1576
1577 *xpos = pVertex->x;
1578 *ypos = pVertex->y;
1579 break;
1580
1581 case OBJ_LINEDEFS:
1582 assert_ldnum(objnum);
1583 pLineDef = &LineDefs[objnum];
1584 pv1 = &Vertexes[pLineDef->start];
1585 pv2 = &Vertexes[pLineDef->end];
1586
1587 *xpos = (pv1->x + pv2->x) / 2;
1588 *ypos = (pv1->y + pv2->y) / 2;
1589 break;
1590
1591 case OBJ_SIDEDEFS:
1592 assert (objnum >= 0 && objnum < NumSideDefs);
1593 for (n = 0; n < NumLineDefs; n++)
1594 {
1595 pLineDef = &LineDefs[n];
1596 if ( pLineDef->sidedef1 == objnum || pLineDef->sidedef2 == objnum)
1597 {
1598 pv1 = &Vertexes[pLineDef->start];
1599 pv2 = &Vertexes[pLineDef->end];
1600
1601 *xpos = (pv1->x + pv2->x) / 2;
1602 *ypos = (pv1->y + pv2->y) / 2;
1603 return;
1604 }
1605 }
1606 *xpos = (MapMinX + MapMaxX) / 2;
1607 *ypos = (MapMinY + MapMaxY) / 2;
1608 break;
1609
1610 case OBJ_SECTORS:

Callers 1

GoToObjectFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected