feat(runtime): project initial Behavior control groups
Docs Deploy / Build and Deploy MkDocs (push) Successful in 37s

This commit is contained in:
Valentin Popov committed 2026-10-31 08:24:58 +04:00
1 parent 6412c12c09
commit 8c11e0f470
4 files changed
+328

No files matched your search

+20
View File
@@ -262,6 +262,26 @@ Behavior (`Behavior.dll`, RVA `0x3600`) вызывает `World3D!stdGetGameMode
с реальными интерфейсами ArealMap, нужными `FUN_10019e80`; полный Behavior tick
flow и общий dispatcher событий также остаются открытыми.
`loaded_mission_behavior_control_groupings` публикует только начальную
группировку подготовленной Control-таблицы. Ветка с меткой `2` исходного
`Behavior.dll!FUN_1001be10` (RVA `0x1be10`) дополнительно вызывает
`FUN_1001b4b0` и обращается к свойствам через QI `0x204`, включая запросы с
номерами `0x700`, `6` и `0x400`. Результат `0x700` попадает в строку кандидата
по смещению `+0x3c`, результат `6` — в `+0x40`, а `0x400` может обнулить второе
поле. Их доменный смысл, множитель `0x700`, агрегаты Behavior QI `0x204` и
прочие числовые поля кандидата не восстановлены. Rust не подставляет множитель
`0x700`, нулевые агрегаты, выбранный индекс или эффект. Список для метки `30` не
встречается в ресурсах AutoDemo и проверяется только на искусственном наборе.
Игнорируемая проверка AutoDemo сравнивает порядковые номера записей начальной
группировки, отдельно выведенные по снимку текущих меток дескрипторов, с
состоянием Rust после полной загрузки. Это подтверждает согласованность разбора
подготовленной таблицы и правила группировки на этих ресурсах, но не является
захватом состояния Behavior оригинала и не устанавливает, когда список
прикрепляется или обновляется в живом объекте. Полный штатный путь загрузки и
запуска, агрегаты Behavior QI `0x204`, обновление после изменений Control,
`Handler(43)` и полный игровой цикл остаются отдельными границами.
Начальные свойства `CurrentOre`/`MaximumOre` восстановлены отдельно от
регулярного обмена. В проверенных `Behavior.dll` (SHA-256
`ddfbdbde07832358fe6e35e01c8dba9b58e7313789498b6049ed51d4ed9baf99`) RVA