feat(runtime): query and update loaded Control resources
Docs Deploy / Build and Deploy MkDocs (push) Successful in 1m17s

This commit is contained in:
Valentin Popov committed 2026-10-22 14:19:25 +04:00
1 parent 40e4392138
commit b9a4d1b478
4 files changed
+958 -25

No files matched your search

+20 -9
View File
@@ -282,15 +282,26 @@ Control различает добавление устройства и прим
подготовленного CTL должно оставаться явным unavailable result, а не
трактоваться как пустой список.
Глобальные Control selectors `1/2` и setter selector `1` по tag `19` описаны
там же только по статическому разбору `Control.dll`; их вызовы отдельно не
исполнялись. Проекция полного mission load недоступна для неполного списка
typed records, Control resource у non-geometric prototype и некоторых
неразрешённых EXTO node mappings; preview и объекты без Unit DAT root её не
строят. Её соответствие полной загрузке игры для всех типов компонентов и
factory paths ещё не установлено. Не восстановлен и жизненный цикл множителя
`+0x4c` после конструктора и переопределения; также неизвестно, когда эти
объекты создаются при отложенной загрузке.
Global Control getters `1/2` и setter `1` проверены в native x86 oracle для
искусственных factory/descriptor pairs `9`, `15` и `19`, а в Rust реализованы
для текущего descriptor tag `19` с factory tags `9`, `15`, `19` и `25`. Для tag
`25` общий getter slot `+0x10` подтверждён чтением vtable, но агрегатный вызов
этого класса native oracle не запускал. Rust API обращается к строкам проекции
конкретного живого `ObjectHandle`; это запрос к уже загруженной таблице, а не
исполнение Control или Behavior tick. Setter `17`, остальные factory tags и
внешние эффекты их методов не включены. Для tag `9` selector `0` использует
отдельный scale `+0x11c`; остальные поддержанные классы используют коэффициент
напрямую. Пустой набор и нулевой знаменатель остаются native no-result, а
неподдержанный factory tag и расчётный диапазон произведения/отношения за
нормальным диапазоном `f32` становятся явной ошибкой Rust.
Проекция полного mission load недоступна для неполного списка typed records,
Control resource у non-geometric prototype и некоторых неразрешённых EXTO node
mappings; preview и объекты без Unit DAT root её не строят. Её соответствие
полной загрузке игры для всех типов компонентов и factory paths ещё не
установлено. Setter `1` меняет multiplier `+0x4c` выбранных строк, но расписание
и lifetime этих объектов после конструктора и в отложенной загрузке остаются
непроверенными.
Для `Control.dll` (SHA-256
`bcb86318089028548a178b03a21accdce15df0cc85ddd91674cf3c2f55012c6e`) tag-26