aboutsummaryrefslogtreecommitdiff
path: root/docs/appendices/knowledge-boundaries.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/appendices/knowledge-boundaries.md')
-rw-r--r--docs/appendices/knowledge-boundaries.md48
1 files changed, 37 insertions, 11 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md
index b9bbf27..d4a620f 100644
--- a/docs/appendices/knowledge-boundaries.md
+++ b/docs/appendices/knowledge-boundaries.md
@@ -323,23 +323,49 @@ sequence определяется NDP: она не дополняется по Ñ
sidecar недоступен, запрос `0xe00` сообщает это отдельно, оставляя независимые
агрегатные selectors `1/2` доступными.
+Поля `parent_index`, Control flags и начальный stage count для NDP-строк
+проецируются из AniMesh по глобальному ordinal; точные правила, native ABI
+векторы и лицензированная root/`EXTO` fixture описаны в
+[техническом подразделе](script-vm.md#начальная-msh-часть-строки-provider).
+Проверки подтверждают только начальный снимок: сборка runtime parent-ов
+остаётся статическим выводом по RVA `AniMesh.dll+0xa460`, а последующие
+изменения в полном Control/animation tick-е не проверялись.
+
+Для provider-строки Rust также хранит одно `initial_amount_bits`. Нативный
+`Control.dll` `FUN_1000f940` (RVA `0xf940`) кладёт результат selector `3` в
+текущее и обработанное значения строки; при подтверждённых единичных множителях
+это raw `max_volume` NDP. Последующее обновление меняет оба native поля, поэтому
+снимок не моделирует вместимость или изменяемый Control amount.
+
Rust query обращается к загруженному объекту и поддерживает `0xe00` только для
текущего descriptor tag `26` с factory tag `26`; другие активные typed tags и
factory paths остаются явными границами. Этот запрос возвращает начальный
-снимок provider amount: Native `FUN_10010f30` (RVA `0x10f30`) изменяет и
-ограничивает количество, а связанные callbacks переносят его между строками;
-этот переход в Rust ещё не реализован.
+type-1 provider value (`1.0`); дальнейшее изменение provider amount в Rust не
+реализовано.
+Native oracle проверил изолированные пути распределения, обновления класса `4`,
+стадийную арифметику `0x11220`, обход дочерних provider-строк `0x11130` и
+visibility transition `0x11920` с исходными AniMesh callbacks. Эти сценарии
+используют синтетические NDP/Node38-строки; они подтверждают локальные переходы
+и порядок вызовов, но не полную загрузку или выполнение Control на миссии. Вызовы
+`0x11220` используют `updateEffects = false`, что исключает ветвь Control FX и
+`0x11af0`; в отдельном сценарии класса `9` `0xfca0` возвращается сразу после
+смены видимости, поэтому связанное с ним движение не проверено. Хотя у строки
+Control выставлен flag `0x102`, слово флагов ANI `+0x14` и производные байты
+`+0x111..+0x113` изначально равны нулю. Вызовы AniMesh `0x93c0` и `0xa2a0` обновляют производную геометрию и
+видимость, это отдельная непроверенная граница, а не FX callbacks. Активную
+clock-ветвь не запускали; внешний источник времени и порядок вызовов в игре
+остаются незакрытыми. Источник контактного коэффициента прослежен статически,
+но не исполнен. Подробные векторы и статические границы приведены в
+[техническом подразделе о provider-состоянии Control](script-vm.md#изменение-provider-состояния-control).
Отдельный API `advance_loaded_mission_resources` принимает явное время очереди
и обновляет представленные поля `CurrentOre`, строк распределителя и Control
-selector `1`. Его граница — статические снимки профиля и provider-значений:
-динамическое распространение Control amount, смена профилей, special
-object-state gate и жизненный цикл созданных/удалённых объектов здесь не
-моделируются. Если обязательный запрос позднего объекта не поддержан,
-транзакция возвращает ошибку и не применяет подготовленные изменения. API не
-подключён к игровому циклу; AutoDemo-тест подтверждает связь настоящих профилей
-с этим шагом, но не полный паритет миссии. Отдельный aggregate getter Behavior
-RVA `0xa490` в oracle не исполнен.
+selector `1`. API не подключён к игровому циклу и не обновляет Control amount,
+профили, special object-state gate или жизненный цикл объектов. Если обязательный
+запрос позднего объекта не поддержан, транзакция возвращает ошибку без применения
+подготовленных изменений. AutoDemo-тест подтверждает связь настоящих профилей с
+этим шагом, но не полный паритет миссии; отдельный aggregate getter Behavior RVA
+`0xa490` в oracle не исполнен.
Behavior selectors `0x1002` и `0x1005` используют значения выбранного
профиля из `behpsp.res`, разобранного до создания нового мира. `0x1002` складывает