MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / RemapPortalNodeIndices

Function RemapPortalNodeIndices

editor/ebnode.cpp:530–561  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

528}
529
530void RemapPortalNodeIndices(int roomnum, int pnt) {
531 int i;
532
533 if (roomnum >= 0 && roomnum <= Highest_room_index) {
534 ASSERT(Rooms[roomnum].used);
535
536 for (i = 0; i < Rooms[roomnum].num_portals; i++) {
537 if (Rooms[roomnum].portals[i].bnode_index == pnt) {
538 Rooms[roomnum].portals[i].bnode_index = -1;
539 } else if (Rooms[roomnum].portals[i].bnode_index > pnt) {
540 Rooms[roomnum].portals[i].bnode_index--;
541 }
542 }
543 } else {
544 int region = BOA_INDEX(roomnum) - Highest_room_index - 1;
545
546 for (i = 0; i < BOA_num_connect[region]; i++) {
547 int r = BOA_connect[region][i].roomnum;
548 int p = BOA_connect[region][i].portal;
549
550 int cr = Rooms[r].portals[p].croom;
551 int cp = Rooms[r].portals[p].cportal;
552
553 vector pos = Rooms[cr].portals[cp].path_pnt + Rooms[cr].faces[Rooms[cr].portals[cp].portal_face].normal * 0.75f;
554 int cell = GetTerrainRoomFromPos(&pos);
555
556 if (region == TERRAIN_REGION(cell) && Rooms[cr].portals[cp].bnode_index == pnt) {
557 Rooms[cr].portals[cp].bnode_index = -1;
558 }
559 }
560 }
561}
562
563void EBNode_RemoveNode(int roomnum, int pnt) {
564 int i;

Callers 1

EBNode_RemoveNodeFunction · 0.85

Calls 2

GetTerrainRoomFromPosFunction · 0.85
TERRAIN_REGIONFunction · 0.85

Tested by

no test coverage detected