aboutsummaryrefslogtreecommitdiff
path: root/docs/appendices
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-29 21:52:57 +0300
committerValentin Popov <valentin@popov.link>2026-10-29 21:52:57 +0300
commitb1134c5526185c7ce5c186bb075e678ed2b4bfc6 (patch)
tree5452056e70850c841b99677b8b6c930fe2cf6070 /docs/appendices
parentaa6d4b8537405628d77f0928eb6fb3e3ba9a826b (diff)
downloadfparkan-b1134c5526185c7ce5c186bb075e678ed2b4bfc6.tar.xz
fparkan-b1134c5526185c7ce5c186bb075e678ed2b4bfc6.zip
docs(runtime): clarify Control load callback order
Diffstat (limited to 'docs/appendices')
-rw-r--r--docs/appendices/script-vm.md15
1 files changed, 8 insertions, 7 deletions
diff --git a/docs/appendices/script-vm.md b/docs/appendices/script-vm.md
index c86e562..38722a2 100644
--- a/docs/appendices/script-vm.md
+++ b/docs/appendices/script-vm.md
@@ -1088,13 +1088,14 @@ backing. Значения `[2, 3, 5]` относятся только к немÑ
`AniMesh.dll` `65659bf67f20e5be77d67a5b2f59968f61b94293143807fa59ca451c560c4f7e`,
`Effect.dll` `386a3e8db1ce23f61957825d633c7dae1ed40c25cab0cf10a534385fd7cee789`
и `Control.dll` `bcb86318089028548a178b03a21accdce15df0cc85ddd91674cf3c2f55012c6e`.
-Сначала `AniMesh::FUN_10002ff0` (RVA `0x2ff0`) вызывает `LoadAniMesh`, затем —
-`LoadControlSystem` на RVA `0x32e7`. После возврата из этой фабрики обычный
-`ArealMap` путь `0x14fd0/0x15290` вызывает `World3D.CreateObject`
-(`0x7cb0/0x7a50`), который до возврата посылает Agent event `0` через primary
-vtable slot `+0x38`. Agent RVA `0x1a80` сначала вызывает базовый обработчик
-`0x17df0`, затем рассылает компонентам event `4` с null payload. Конструктор
-AniMesh задаёт `+0x158/+0x15c/+0x160` равными `1.0`.
+Обычный `ArealMap` путь (`0x14fd0/0x15290`) вызывает `World3D.CreateObject`
+(`0x7cb0/0x7a50`). Выбранная этим вызовом фабрика создаёт Agent:
+`AniMesh::FUN_10002ff0` (RVA `0x2ff0`) сначала вызывает `LoadAniMesh`, затем —
+`LoadControlSystem` на RVA `0x32e7`. После возврата из фабрики
+`World3D::FUN_10007cb0` (RVA `0x7cb0`) до своего возврата посылает Agent event
+`0` через primary vtable slot `+0x38`. Agent RVA `0x1a80` сначала вызывает
+базовый обработчик `0x17df0`, затем рассылает компонентам event `4` с null
+payload. Конструктор AniMesh задаёт `+0x158/+0x15c/+0x160` равными `1.0`.
Обработчик модели `0x75b0/0x6fc0` привязывает интерфейсы и матрицу, Effect RVA
`0x3d30` и Control RVA `0x1ce00` сохраняют host/service указатели, а Control
`0x1fe00` меняет только локальный collision-флаг. Эти ветви не вызывают AniMesh