aboutsummaryrefslogtreecommitdiff
path: root/docs/appendices/knowledge-boundaries.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-22 13:19:25 +0300
committerValentin Popov <valentin@popov.link>2026-10-22 13:19:25 +0300
commitb9a4d1b478d9ff6dff457617f7296c54db70532e (patch)
treee839d5892f2bf09092cd09a79ab47582719c3517 /docs/appendices/knowledge-boundaries.md
parent40e43921385740b6e2cb502f1cb5e3d8347dc2d7 (diff)
downloadfparkan-b9a4d1b478d9ff6dff457617f7296c54db70532e.tar.xz
fparkan-b9a4d1b478d9ff6dff457617f7296c54db70532e.zip
feat(runtime): query and update loaded Control resources
Diffstat (limited to 'docs/appendices/knowledge-boundaries.md')
-rw-r--r--docs/appendices/knowledge-boundaries.md29
1 files changed, 20 insertions, 9 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md
index 27cf74a..f389b03 100644
--- a/docs/appendices/knowledge-boundaries.md
+++ b/docs/appendices/knowledge-boundaries.md
@@ -282,15 +282,26 @@ Control различает добавление устройства и прим
подготовленного CTL должно оставаться явным unavailable result, а не
трактоваться как пустой список.
-Глобальные Control selectors `1/2` и setter selector `1` по tag `19` описаны
-там же только по статическому разбору `Control.dll`; их вызовы отдельно не
-исполнялись. Проекция полного mission load недоступна для неполного списка
-typed records, Control resource у non-geometric prototype и некоторых
-неразрешённых EXTO node mappings; preview и объекты без Unit DAT root её не
-строят. Её соответствие полной загрузке игры для всех типов компонентов и
-factory paths ещё не установлено. Не восстановлен и жизненный цикл множителя
-`+0x4c` после конструктора и переопределения; также неизвестно, когда эти
-объекты создаются при отложенной загрузке.
+Global Control getters `1/2` и setter `1` проверены в native x86 oracle для
+искусственных factory/descriptor pairs `9`, `15` и `19`, а в Rust реализованы
+для текущего descriptor tag `19` с factory tags `9`, `15`, `19` и `25`. Для tag
+`25` общий getter slot `+0x10` подтверждён чтением vtable, но агрегатный вызов
+этого класса native oracle не запускал. Rust API обращается к строкам проекции
+конкретного живого `ObjectHandle`; это запрос к уже загруженной таблице, а не
+исполнение Control или Behavior tick. Setter `17`, остальные factory tags и
+внешние эффекты их методов не включены. Для tag `9` selector `0` использует
+отдельный scale `+0x11c`; остальные поддержанные классы используют коэффициент
+напрямую. Пустой набор и нулевой знаменатель остаются native no-result, а
+неподдержанный factory tag и расчётный диапазон произведения/отношения за
+нормальным диапазоном `f32` становятся явной ошибкой Rust.
+
+Проекция полного mission load недоступна для неполного списка typed records,
+Control resource у non-geometric prototype и некоторых неразрешённых EXTO node
+mappings; preview и объекты без Unit DAT root её не строят. Её соответствие
+полной загрузке игры для всех типов компонентов и factory paths ещё не
+установлено. Setter `1` меняет multiplier `+0x4c` выбранных строк, но расписание
+и lifetime этих объектов после конструктора и в отложенной загрузке остаются
+непроверенными.
Для `Control.dll` (SHA-256
`bcb86318089028548a178b03a21accdce15df0cc85ddd91674cf3c2f55012c6e`) tag-26