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.md37
1 files changed, 30 insertions, 7 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md
index 9e293ba..d4a620f 100644
--- a/docs/appendices/knowledge-boundaries.md
+++ b/docs/appendices/knowledge-boundaries.md
@@ -323,16 +323,39 @@ 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; дальнейшее изменение строк в Rust не реализовано.
-Native oracle проверил изолированные пути распределения, обновления класса `4`
-и начальную ветвь таймера. Активную clock-ветвь не запускали; внешний источник
-времени и порядок вызовов остаются незакрытыми. Источник контактного коэффициента
-прослежен статически, но не исполнен; синтетические provider-строки не имеют
-родителей, а родительская логика и lifecycle истощения не проверены. Подробные
-векторы и статические границы приведены в
+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` принимает явное время очереди