Обновлено:

На этой странице

Точные значки воздушных приказов — v0.17.1

Исправлены две кнопки выпуска 0.17.0: воздушная разведка и перебазирование использовали неверные ячейки общего PTW-атласа. Теперь они используют оригинальный Conquests-атлас, соответствующий исследованному исполняемому файлу. Изображения не перерисованы; сохранены исходные пиксели, палитра и маска прозрачности.

Откуда взята привязка

Исходный Civ3Conquests.exe, SHA-256 c40583d707af7abd9b8568e2ed5a4f117f27a775dca617c8d7b873d76772dd6d, строит воздушные кнопки в цикле 0x551394–0x551487. Для каждой вызывает функцию перечисления команд 0x5508e0, передавая категорию 3 и индекс 0–4.

Функция целиком исполняется в проверочном стенде Unicorn без замены инструкций. Отдельно исполняется исходный расчёт координат вырезки 0x556bd8–0x556c09 для всех 59 используемых ячеек. Сигнатуры загрузки Art\interface\NormButtons.pcx, адресов массивов, шага структуры 44 байта и смещений трёх состояний проверены в исходном EXE.

ПриказИсходная командаЯчейкаВырезка x, y, ширина, высота
Бомбардировка0x3000000137160, 128, 32, 32
Воздушная разведка0x3000000238192, 128, 32, 32
Воздушное превосходство0x3000000439224, 128, 32, 32
Перебазирование0x30000008400, 160, 32, 32
Точечный удар0x300000104132, 160, 32, 32

В игре пока доступны только разведка и перебазирование. Наличие подтверждённой картинки для остальных команд не означает готовности боевой механики.

Подготовка и проверки

scripts/prepare-native-orders.py --air экспортирует три отдельных PNG из Conquests/Art/interface: обычное состояние, наведение и нажатие. Их собственные имена сохраняют существующий PTW-набор обычных приказов. Проверка сравнивает все RGBA-пиксели с исходными PCX, контролирует маску, хеши, повторяемость экспорта и сохранность других записей манифеста.

Браузерный сценарий сверяет обе вырезки с полученным машинным эталоном, проверяет все три состояния и декодирование изображений. Затем выполняет обычную разведку неизвестной цели, сохранение/перезагрузку, переговорное прерывание, настоящий следующий ход, посадку на авианосец и разведку с палубы. Обычные приказы и полная небольшая партия проверяются отдельно.

Воспроизведение машинного стенда:

PYTHONPATH=/tmp/civ3-native-math-python python3 scripts/run-limited.py -- python3 scripts/verify-air-command-icons.py

Исходные блоки, 67 машинных случаев, 11 сигнатур и привязки. Происхождение и хеши трёх PNG.

Полный Windows-интерфейс и его поиск файлов при наложении сценариев здесь не исполнялись. Эти проверки подтверждают привязки исследованного EXE и точность перенесённых изображений, а не полное совпадение поведения Windows-игры.