docs(control): trace AniMesh loading chain
This commit is contained in:
@@ -243,6 +243,28 @@ World3D и делает virtual call slot `+0x24` с literal `0x15` и стро
|
|||||||
следующим объектом динамической трассировки. Поэтому reference movement в
|
следующим объектом динамической трассировки. Поэтому reference movement в
|
||||||
новом runtime намеренно не использует неподтверждённые параметры Control.
|
новом 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
|
### Control system и physical model
|
||||||
|
|
||||||
`LoadControlSystem` загружает настройки controller-а: ограничения скорости,
|
`LoadControlSystem` загружает настройки controller-а: ограничения скорости,
|
||||||
|
|||||||
Reference in New Issue
Block a user