feat(runtime): project native Control object classes
Docs Deploy / Build and Deploy MkDocs (push) Successful in 50s

This commit is contained in:
Valentin Popov committed 2026-10-29 21:20:45 +04:00
1 parent 6c079d9457
commit cc5c6414ce
5 files changed
+295 -5

No files matched your search

+14
View File
@@ -662,6 +662,20 @@ parent ID через Control IID `0x202`, virtual slot `+0x44`, только е
исходный ключ `1` становится `22`. Этот ключ выбирает модельный узел, а не
строку Control. Записи корня остаются в исходном виде.
#### Входной класс контроллера
Таблица устройств и класс самого Control-контроллера выбираются разными
частями загрузки. У полного объекта из Unit DAT старший бит флагов корня решает,
каким путём создать host. В ветви с этим битом объект проходит через Terrain;
эта оболочка передаёт AniMesh native-класс Control `3`. Если бит не установлен,
класс выбирает FourCC записи корневого ресурса: `BTLU` даёт `4`, `BULL` — `9`,
`WPNS` — `2`, `STAT` — `10`, а неизвестный FourCC оставляет класс `0`.
Например, `min_l_n1.dat` хранит флаги `0x80000004`, поэтому его проекция
получает класс `3`. Это аргумент конструктора Control, а не номер строки
устройства и не само по себе включение движения или обновлений. Техническая
цепочка и границы проверки описаны в [приложении](../appendices/script-vm.md#входной-класс-control-при-загрузке-unit-dat).
### Как Control добавляет и переопределяет устройства
В `Control.dll` (SHA-256