Зонирование городов (Town Zoning)
Портирование зонирования городов из cmclient (четвёртая партия, коммит 9e3f95a2). База jrpm (pulsexlb) уже имеет собственную систему зонирования (панель инструментов + конвейер отрисовки + меню), данная партия добавляет поверх неё уникальные режимы оценки cmclient и сохранение growth_tiles.
Новые режимы (выпадающее меню панели зонирования)
| Режим | Описание | Раскраска |
|---|---|---|
| Town zones (Tz) | Концентрические зоны городов, использует squared_town_zone_radius | Tz0 край = голубой / Tz1 = красный / Tz2 = жёлтый / Tz3 = зелёный / Tz4 центр = белый |
| Town growth tiles | Траектория строительства и сноса домов за текущий/прошлый месяц | Новый дом = зелёный / Снос = голубой / Перестройка = белый / Пропуск роста = оранжевый / Пропуск стройки = жёлтый / Серверный снос = красный |
Слой данных growth_tiles (cm_town_growth.cpp/.h)
- Две скользящие карты по месяцам:
TileIndex → TownGrowthTileState(текущий месяц / прошлый месяц) - Хуки событий:
BuildTownHouse→NEW_HOUSE(если в прошлом месяце был снос, повышается доRH_REBUILT)ClearTownHouse→RH_REMOVEDTownsMonthlyLoop→ ежемесячная ротация (прошлый месяц = текущий, текущий очищается)
- Сохранение: новый блок
GRWTв файле сохранения (misc_sl.cpp), сериализуется как список пар{tile, state}; старые сохранения без этого блока загружаются полностью совместимо (проверено сохранение→загрузка).
Способ открытия
Меню панели инструментов → Карта (Zoning) → открыть панель зонирования, внутренний и внешний круги выбора режима оценки.
Примечания по сокращению
Специфичные для сервера CityBuilder режимы cmclient (зона приёма CB / лимит городов CB) и расширенные поля ext::Town (реклама, финансы, статистика грузов) являются специфичными для серверного геймплея и не были портированы.