MCPcopy Create free account
hub / github.com/diasurgical/devilution / L2LockoutFix

Function L2LockoutFix

Source/drlg_l2.cpp:1646–1711  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1644}
1645
1646void L2LockoutFix()
1647{
1648 int i, j;
1649 BOOL doorok;
1650
1651 for (j = 0; j < DMAXY; j++) {
1652 for (i = 0; i < DMAXX; i++) {
1653 if (dungeon[i][j] == 4 && dungeon[i - 1][j] != 3) {
1654 dungeon[i][j] = 1;
1655 }
1656 if (dungeon[i][j] == 5 && dungeon[i][j - 1] != 3) {
1657 dungeon[i][j] = 2;
1658 }
1659 }
1660 }
1661 for (j = 1; j < DMAXY - 1; j++) {
1662 for (i = 1; i < DMAXX - 1; i++) {
1663 if (dflags[i][j] & DLRG_PROTECTED) {
1664 continue;
1665 }
1666 if ((dungeon[i][j] == 2 || dungeon[i][j] == 5) && dungeon[i][j - 1] == 3 && dungeon[i][j + 1] == 3) {
1667 doorok = FALSE;
1668 while (1) {
1669 if (dungeon[i][j] != 2 && dungeon[i][j] != 5) {
1670 break;
1671 }
1672 if (dungeon[i][j - 1] != 3 || dungeon[i][j + 1] != 3) {
1673 break;
1674 }
1675 if (dungeon[i][j] == 5) {
1676 doorok = TRUE;
1677 }
1678 i++;
1679 }
1680 if (!doorok && !(dflags[i - 1][j] & DLRG_PROTECTED)) {
1681 dungeon[i - 1][j] = 5;
1682 }
1683 }
1684 }
1685 }
1686 for (j = 1; j < DMAXX - 1; j++) { /* check: might be flipped */
1687 for (i = 1; i < DMAXY - 1; i++) {
1688 if (dflags[j][i] & DLRG_PROTECTED) {
1689 continue;
1690 }
1691 if ((dungeon[j][i] == 1 || dungeon[j][i] == 4) && dungeon[j - 1][i] == 3 && dungeon[j + 1][i] == 3) {
1692 doorok = FALSE;
1693 while (1) {
1694 if (dungeon[j][i] != 1 && dungeon[j][i] != 4) {
1695 break;
1696 }
1697 if (dungeon[j - 1][i] != 3 || dungeon[j + 1][i] != 3) {
1698 break;
1699 }
1700 if (dungeon[j][i] == 4) {
1701 doorok = TRUE;
1702 }
1703 i++;

Callers 1

DRLG_L2Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected