| 4746 | } |
| 4747 | |
| 4748 | BOOL LineClearF(BOOL (*Clear)(int, int), int x1, int y1, int x2, int y2) |
| 4749 | { |
| 4750 | int xorg, yorg; |
| 4751 | int dx, dy; |
| 4752 | int d; |
| 4753 | int xincD, yincD, dincD, dincH; |
| 4754 | int tmp; |
| 4755 | |
| 4756 | xorg = x1; |
| 4757 | yorg = y1; |
| 4758 | dx = x2 - x1; |
| 4759 | dy = y2 - y1; |
| 4760 | if (abs(dx) > abs(dy)) { |
| 4761 | if (dx < 0) { |
| 4762 | tmp = x1; |
| 4763 | x1 = x2; |
| 4764 | x2 = tmp; |
| 4765 | tmp = y1; |
| 4766 | y1 = y2; |
| 4767 | y2 = tmp; |
| 4768 | dx = -dx; |
| 4769 | dy = -dy; |
| 4770 | } |
| 4771 | if (dy > 0) { |
| 4772 | d = 2 * dy - dx; |
| 4773 | dincH = 2 * (dy - dx); |
| 4774 | dincD = 2 * dy; |
| 4775 | yincD = 1; |
| 4776 | } else { |
| 4777 | d = 2 * dy + dx; |
| 4778 | dincH = 2 * (dx + dy); |
| 4779 | dincD = 2 * dy; |
| 4780 | yincD = -1; |
| 4781 | } |
| 4782 | while (x1 != x2 || y1 != y2) { |
| 4783 | if ((d <= 0) ^ (yincD < 0)) { |
| 4784 | d += dincD; |
| 4785 | } else { |
| 4786 | d += dincH; |
| 4787 | y1 += yincD; |
| 4788 | } |
| 4789 | x1++; |
| 4790 | if ((x1 != xorg || y1 != yorg) && !Clear(x1, y1)) |
| 4791 | break; |
| 4792 | } |
| 4793 | } else { |
| 4794 | if (dy < 0) { |
| 4795 | tmp = y1; |
| 4796 | y1 = y2; |
| 4797 | y2 = tmp; |
| 4798 | tmp = x1; |
| 4799 | x1 = x2; |
| 4800 | x2 = tmp; |
| 4801 | dy = -dy; |
| 4802 | dx = -dx; |
| 4803 | } |
| 4804 | if (dx > 0) { |
| 4805 | d = 2 * dx - dy; |
no outgoing calls
no test coverage detected