Я пере-просмотрел код и не вижу ничего корректного в патче.
Мы вибираем наборы ячеек вокруг конкретной в которой стоит игрок.
+- на определенное колличество.
Операторы << -= >> += определены так что всегда возвращают номер ячейки не выходящей за пределы (0..LIMIT-1)
Соответствеено цикл _должен_ включать правый пограничный номер.
Т.е. _должен_ быть в ввиде y <= end_cell.y_coord
Иначем у вас нарушается симметрия области.
Проблема может быть только если
CellArea area = Cell::CalculateCellArea(*plr, GetVisibilityDistance());
вычисляет размеры области некоректно
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Последний раз редактировалось Vladimir; 02.06.2010 в 07:16.
|