Подготовка боевых воздушных действий: исходные ветки и открытые проверки
Состояние на28.10.2026 после0.17.0. Это рабочие результаты исследования для продолжения5.2. Бомбардировка, перехват и городская/войсковая ПВО ещё не являются действующими командами веб-движка.
Исследован предоставленный Conquests/Civ3Conquests.exe, SHA-256 c40583d707af7abd9b8568e2ed5a4f117f27a775dca617c8d7b873d76772dd6d. Адреса ниже относятся к этой поставке. Имена структур сопоставлены с первичными исходниками C3X; изменения C3X нельзя автоматически считать правилами исходного EXE.
Приказ воздушного превосходства
Ветка 0x4d9480 проверяет допустимость 0x30000004, вызывает установку состояния15 (0x4d9495–0x4d9499), получает полное движение (0x4d94a0) и записывает его в счётчик использованного движения (0x4d94a5, поле юнита +0x50).
Поиск перехватчика далее проверяет состояние15, использованное движение и предел движения (0x5c6b35–0x5c6b50). Часть с исчерпанным движением пропускается. Следовательно, назначение приказа нельзя без проверки заменить немедленным доступным перехватом. Первичный код C3X содержит отдельное исправление patch_intercept_lost_turn_bug: функция patch_Unit_get_move_points_after_set_to_intercept сохраняет прежнее значение движения только при включённом исправлении, иначе возвращает предел.
Веб-движок сейчас сбрасывает движения на границе глобального хода. Для будущей реализации нужно отдельно проверить реальную границу хода владельца, дипломатические прерывания и сохранение состояния готовности. Просто добавить проверку moves>0 после глобального сброса недостаточно для воспроизведения собственной очереди владельца. Точное Windows-поведение и исключения пока не проверены.
Городская ПВО складывается
Функция 0x4c1270–0x4c130c перебирает постройки, проверяет наличие/действие и устаревание, затем читает поле +0xc4 структуры постройки (0x4c12e4) и прибавляет его к накопленной силе (0x4c12eb). Выбор максимальной из построек не соответствует этой ветке.
В текущем профиле BLDG44 «Flak Cannons» имеет air_power=6, BLDG88 «Батарея ПВО» —12. Аэропорт9 имеет нулевую силу ПВО и отдельные флаги обучения/воздушной торговли. Предстоящая общая проверка должна учитывать действующие предоставленные постройки, устаревание и владельца через существующие функции зданий.
Для городской ПВО ранее проверен знаменатель случайного испытания planeDefense + airPower. Если результат достигает защиты самолёта, самолёт уничтожается; выжившая ветка также возвращается через выход прерванной миссии. Порог обнаружения берётся из обычного либо stealth-параметра RULE. В этой поставке это80 и5. Полный порядок случайных вызовов и иммунитетов ещё требует контрольных случаев.
Войсковая ПВО и истребители
Ранее исполненные арифметические блоки подтверждают вес выживания D*(experienceId+1)*5, знаменатель weight+AA и предельный выбор четырёх сильнейших зенитных частей. Поле опыта — абсолютное Unit+0x44; это не накопленный урон. Ветку сравнения результата, выбор участников и порядок при нескольких владельцах необходимо проверять отдельно.
Рабочий радиус истребителя делится на два с усечением и минимумом1 для положительного значения. При исходном нуле отдельная ветка оставляет нулевой радиус. После успешного перехвата 0x5c6e21 расходует движение и 0x5c6e24 вызывает смену состояния. Полная геометрия выбора и воздушный бой пока не исполнены в стенде.
Наземные боевые правила с защитой местности и захватом города нельзя целиком вызывать как воздушную дуэль. Нужно выделить отдельный расчёт боя, сохранив общие награды, опыт, потери и военную усталость там, где они применимы.
Следующие проверяемые результаты
- Обычная бомбардировка и точечный удар: точные цели/категории повреждения, цена действия, исходные ограничения и отказ без изменения PRNG.
- Отдельные сохраняемые приказы перехвата и их готовность на настоящем ходу владельца.
- Городская ПВО, до четырёх зенитных частей и истребители: порядок испытаний, уничтожение/прерывание, общий воспроизводимый PRNG.
- Производство только реально поддержанных типов через общие национальные, технологические и ресурсные требования.
- Предпросмотр и ИИ по доступным игроку сведениям; исполнение может учитывать скрытую оборону, но подсказка не должна раскрывать её заранее.
- Исходные кадры полёта/атаки и звук после расчёта. Скрытые чужие действия не проигрываются и не загружают анимационные ресурсы.
- Сохранение посреди приказов, продолжение и полный небольшой игровой цикл до победы.
Проверенные численные блоки · Точная привязка пяти кнопок. Полная совместимость с Windows-оригиналом не заявляется.
Реализация v0.18.0
Первоначальные записи выше сохраняются как история исследования. Подключённая реализация,732 дополнительных исполнения исходных инструкций, проверки и оставшиеся расхождения описаны в air-combat-model.md.