diff options
Diffstat (limited to 'docs/appendices/knowledge-boundaries.md')
| -rw-r--r-- | docs/appendices/knowledge-boundaries.md | 48 |
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` складывает |
