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.md19
1 files changed, 16 insertions, 3 deletions
diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md
index aa2fa09..6e8d9b1 100644
--- a/docs/tomes/06-behavior.md
+++ b/docs/tomes/06-behavior.md
@@ -945,9 +945,22 @@ let ratio = amount / maximum;
Это три отдельные операции над `f32`, с проверкой поддерживаемого численного
диапазона до записи состояния. Исходные `initial_*` поля сохраняются;
`processed_amount_bits` тоже не меняется, поскольку его обновляет другой
-нативный проход — пересчёт стадий. API возвращает обязательную публикацию
-`ControlNodeProviderPublication` для узла и selector `0x200`; сам callback
-AniMesh и пересчёт стадий этим API не исполняются. Истощение корня либо узла
+нативный проход — пересчёт стадий. Публикация selector `0x200` теперь применяется
+к CPU-состоянию соответствующего узла модели. Результат
+`ControlNodeProviderPublication` описывает уже выполненную запись. Пересчёт
+стадий и вывод изменённой модели в окно этим API ещё не запускаются.
+
+У AniMesh есть собственное поле значения узла, отдельное от доли Control.
+Конструктор `AniMesh.dll+0x123e0` начинает его с `1.0`, а видимую стадию — с
+`0`. Callback `+0x5750` при selector `0x200` записывает число в поле `+0x124`
+строки модели с шагом `0x130`, не меняя её стадию `+0x1c` и соседние узлы.
+Native oracle соединяет исходные `Control+0x10f30` и `AniMesh+0x5750`; между
+ними стоит только запись диагностической трассы. Прямая добавка `20` к
+количеству `40` из максимума `100` записывает `0.6` и в provider, и в узел
+модели. Эти поля нельзя объединять: наследование родительской доли в отдельном
+стадийном проходе меняет provider, не повторяя callback `0x200`.
+В Rust `mesh_state` хранит это отдельное значение и видимую стадию;
+неразрешённый узел прерывает изменение до записи остальных полей. Истощение корня либо узла
с критическим флагом `1` пока возвращает ошибку без изменения состояния:
эта ветвь требует полного lifecycle объекта, а не только нового количества.