From 5052edbee97afd84e0b146091e8002f2a1748a85 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 20:00:50 +0400 Subject: [PATCH] docs(control): trace AniMesh loading chain --- docs/tomes/06-behavior.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md index 7b4f22a..8fdd99d 100644 --- a/docs/tomes/06-behavior.md +++ b/docs/tomes/06-behavior.md @@ -243,6 +243,28 @@ World3D и делает virtual call slot `+0x24` с literal `0x15` и стро следующим объектом динамической трассировки. Поэтому reference movement в новом runtime намеренно не использует неподтверждённые параметры Control. +### Связь с AniMesh + +PE import table GOG `AniMesh.dll` показывает, что это прямой consumer +`CreateCollManager`, `CreateCollObject` и `LoadControlSystem`; других DLL, +которые статически импортируют эти три named exports, не найдено. Внутренний +AniMesh path по VA `0x100032e7` вызывает Control thunks в строгой наблюдаемой +последовательности: + +```text +LoadControlSystem (thunk 0x1001934e) + -> CreateCollObject (thunk 0x10019348) + -> CreateCollManager (thunk 0x10019342) +``` + +После factory calls caller immediately берёт returned interface vtable и +делает дальнейшие virtual calls; это связывает Control с загрузкой +AniMesh/unit components, а не с одной глобальной настройкой процесса. В +частности, `CreateCollObject` получает два stack arguments, а +`CreateCollManager` — один. Предметные значения этих arguments, ownership +private objects и per-tick update slots пока не восстановлены; порядок +создания не доказывает скорость, collision algorithm или AI semantics. + ### Control system и physical model `LoadControlSystem` загружает настройки controller-а: ограничения скорости,