diff options
Diffstat (limited to 'docs/appendices/knowledge-boundaries.md')
| -rw-r--r-- | docs/appendices/knowledge-boundaries.md | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md index b10a002..873497c 100644 --- a/docs/appendices/knowledge-boundaries.md +++ b/docs/appendices/knowledge-boundaries.md @@ -157,13 +157,17 @@ Behavior (`Behavior.dll`, RVA `0x3600`) вызывает `World3D!stdGetGameMode подтверждает только состав списков, не точную эквивалентность всей загрузки или регулярного шага Behavior. -Нативный `Behavior.dll!Add` (RVA `0x1aac0`) создаёт для каждого участника запись -размером `0x1c` с начальной долей `1 / count`, а `normalize` (RVA `0x1ac90`) -перенормирует прежние доли после добавления. Rust пока хранит только членство: -поля записи, доли и их изменение ещё не исполняются. Не восстановлено и -соединение с реальными интерфейсами ArealMap, необходимыми для регулярного -вызова `FUN_10019e80`; остальной Behavior tick flow и общий dispatcher событий -также остаются открытыми. +Нативный `Behavior.dll!Add` (RVA `0x1aac0`) и `normalize` (RVA `0x1ac90`) +проверены прямыми x86-вызовами на синтетических записях при x87 control word +`0x007f`, измеренном также у игры на входах обоих методов. Rust повторяет +начальные доли и нормализацию отдельными операциями `f32`, а повторную запись +сопоставляет по `ObjectHandle`, меняя только долю существующего участника. +Пять DWORD после доли хранятся сырыми; ненулевое первое слово закрепляет вес, +смысл четырёх следующих не установлен. Лицензированный AutoDemo-тест проверяет +список TMA-объектов и получившиеся начальные доли по кланам, но это не сравнение +живых весов миссии с полями исходных runtime-записей. Не восстановлено соединение +с реальными интерфейсами ArealMap, нужными `FUN_10019e80`; полный Behavior tick +flow и общий dispatcher событий также остаются открытыми. Для `Handler(30)` отдельно подтверждены обратный вызов `iron3d.dll` RVA `0x611d0` (SHA-256 `d1dc4ea8535e2069b0a05c9e8be2724dd438ba44cca7a83007d8b2e50f9e35fa`), |
