| 528 | } |
| 529 | |
| 530 | void 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 | |
| 563 | void EBNode_RemoveNode(int roomnum, int pnt) { |
| 564 | int i; |
no test coverage detected