aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes/06-behavior.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tomes/06-behavior.md')
-rw-r--r--docs/tomes/06-behavior.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md
index 45a6303..68a35e6 100644
--- a/docs/tomes/06-behavior.md
+++ b/docs/tomes/06-behavior.md
@@ -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