Размер памяти
Просмотрите снова разделы 3.2.2 и отметьте все используемые атрибуты, мы придумали следующий набор атрибутов вершины для реализации теста:
typedef struct {
BYTE cTerrainType : 4; // Класс местности, 4 бита
BYTE cRoadType : 2; // Класс дороги, вкл. нет-дороги, 2 бита
BYTE bVisible : 1; // Видимость, 1 бит
BYTE bHaveVisCalc : 1; // Вычеслена ли bVisible?, 1 бит
SWORD wHeight; // Высота над уровнем моря, 16 бит
} CellAttr;
В целом, мы имеем три байта на ячейку. Если детектирование врага и наклона, не нужно, мы могли бы пропустить атрибут высоты и суметь обойтись одним байтом на вершину! Если мы нуждались в большем количестве классов местности и/или классов дороги, дополнительный байт мог бы быть необходим.
5.2.4