Местность и оформление интерфейса
Графика пригодна для точного воспроизведения после конвертации
В исходной поставке есть готовые растровые слои карты, городов и интерфейса. Их не требуется заново рисовать ради технической совместимости: необходимы чтение исходного формата, сохранение прозрачности и сборка сцены. Возможность публично распространять полученный набор рассматривается отдельно в оценке прав.
Среди файлов с расширением PCX успешно прочитаны заголовки и палитры 4 466 изображений: 4 446 палитровых, 18 RGB и 2 в градациях серого. Ещё два файла требуют отдельной обработки: один имеет сигнатуру BIC, другой не прошёл чтение палитры проверенным декодером. Это более глубокая проверка, чем первичное чтение только размеров.
Карта состоит из нескольких слоёв
Основной профиль правил имеет 14 типов местности, но файлов графики существенно больше. Один тип местности нельзя сопоставлять одному независимому ромбу: вид клетки зависит от соседей и дополнительных объектов.
| Слой | Примеры исходных ресурсов | Что требуется браузеру |
|---|---|---|
| Базовая суша и вода | XGGC.PCX, XDGC.PCX, XPGC.PCX, wCSO.pcx, wSSS.pcx, wOOO.pcx | Выбор перехода по соседям, индекс фрагмента листа |
| Рельеф и растительность | Горы, холмы, леса, джунгли, болота, вулканы | Оверлеи, перекрытие соседних клеток, порядок отрисовки |
| Реки | mtnRivers.pcx, deltaRivers.pcx | Соединения сегментов и независимое состояние реки |
| Улучшения | Дороги, железные дороги, орошение, здания местности | Связность и отдельные признаки улучшений |
| Ресурсы | Листы значков ресурсов | Индекс ресурса и условия видимости |
| Видимость и принадлежность | FogOfWar.pcx, Territory.pcx | Маски видимости и границы владельцев |
| Города и войска | Art/Cities, Art/Units | Отдельные объекты поверх карты |
Просмотрен лист Art/Terrain/XGGC.PCX размером 1152×576. Его геометрия согласуется с сеткой 9×9 фрагментов 128×64. Это 81 позиция на листе; назначение позиции определяется схемой соседства, а не случайным выбором любого фрагмента. В качестве открытого примера такого сопоставления использована реализация TerrainTextureFiles.
Для редактора карты изменение одного типа поверхности должно обновлять графику затронутых соседей. Базовая местность, рельеф, река, дорога, ресурс, владелец и видимость должны храниться отдельно. Текущее устройство прототипа с шестью взаимоисключающими типами не выражает всю эту модель.
Палитры и прозрачность
PCX обычно содержит индексы цветов и таблицу палитры. Прозрачность и тени могут задаваться смыслом определённых индексов или отдельным файлом маски. Простое сохранение видимого RGB даёт, например, ярко-розовые поля городского экрана и тайлов.
В проверенном фоне городского экрана индекс 255 занимает 425 984 пикселя. На листе XGGC — 331 776 пикселей. Эти области нельзя воспринимать как обычную заливку изображения. При этом в листе стандартных кнопок пиксели индекса 255 отсутствуют: общую схему нельзя механически применять ко всем файлам.
Для пары box right color.pcx и box right alpha.pcx сохранены одинаковые размеры 294×137, но разное назначение: цвет и маска. Их нужно соединить в RGBA. Некоторые элементы используют обрезку или отдельную область маски. Подобные случаи явно различаются в декодере PCX OpenCiv3; его соглашения служат ориентиром для конвертера и требуют проверки на нашем наборе.
Для воспроизводимости конвертеру нужен параметр назначения: обычная картинка, тайл, альфа-маска, интерфейс с маской, тень, значок или кадр юнита. Исходные индексы следует сохранять до применения соответствующего режима.
Городской экран и команды
| Ресурс базовой игры | Размер | Роль |
|---|---|---|
Art/City Screen/background.pcx | 1024×768 | Фон и разметка городского экрана |
Art/City Screen/governorBack.pcx | 1024×768 | Основа окна управления губернатором |
Art/interface/NormButtons.pcx | 257×160 | Лист обычных состояний команд |
Art/interface/HighlightedButtons.pcx | 257×160 | Выделенные состояния |
Art/interface/RollOverButtons.pcx | 257×160 | Состояния наведения |
Art/interface/box right color.pcx | 294×137 | Рамка информационной панели |
Art/City Screen/ProductionQueueBox.pcx | 203×360 | Оформление очереди производства |
Графический фон не содержит интерактивной логики. Кнопки, подписи, доступность действий, события клавиатуры и переходы между окнами нужно реализовать в браузере. Фон 1024×768 даёт точную опорную геометрию для настольного режима; на узком экране потребуется масштабирование или отдельная компоновка.
Названия команд можно связать с текстами labels.txt, Script.txt и действиями INI, но геометрию клика и поведение нельзя вывести только из картинки. Для каждого экрана полезно составить список областей, данных, состояний и переходов.
Подготовка ресурсов
Для панели и значка подходят PNG или WebP без потерь; они сохраняют чёткие края и альфа-канал. Поддержка этих форматов описана в справочнике форматов веб-изображений MDN.
Один из листов зданий Conquests имеет размер 448×11000. Для работы на разных устройствах его лучше разделить на страницы атласа с собственным индексом. Варианты зданий и городов по эпохам и культуре нужно хранить как варианты одного объекта, а не как независимые здания.
Оригинальные PCX и служебные индексы остаются эталоном. В браузерный набор входят только подготовленные атласы и манифесты с координатами, назначением и происхождением. Полные размеры и палитры: image-metadata.json; примеры декодирования пикселей: pixel-decode-samples.json.