fix(runtime): preserve native mission outcome guards
Docs Deploy / Build and Deploy MkDocs (push) Successful in 37s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 37s
This commit is contained in:
6 files changed
+524
-68
No files matched your search
@@ -44,6 +44,18 @@ state ещё не восстановлены.
|
||||
вывод по одному известному `ai.dll`, а не утверждение о совпадении во время
|
||||
исполнения.
|
||||
|
||||
Для `Handler(30)` отдельно подтверждены обратный вызов `iron3d.dll` RVA
|
||||
`0x611d0` (SHA-256 `d1dc4ea8535e2069b0a05c9e8be2724dd438ba44cca7a83007d8b2e50f9e35fa`),
|
||||
начальные поля IGame и проверки режима/состояния. Обработчик выбора миссии
|
||||
выставляет режим 1 (RVA `0x29142`), а обработчик таймера — режим 3 (RVA `0x70f3`).
|
||||
Небольшая тестовая x86-программа сравнивает этот обратный вызов с исходной DLL
|
||||
на синтетических структурах. Пока не восстановлен сквозной путь от выбора и
|
||||
инициализации миссии к первому событию Handler(30): Rust загружает миссию, но
|
||||
ещё не выполняет штатный `stdInitGame`, переход состояния `5 -> 4`, запуск и
|
||||
игровой цикл с полной диспетчеризацией событий. Поэтому
|
||||
совпадение изолированного обратного вызова не доказывает совместимость живого
|
||||
сценария.
|
||||
|
||||
Закрывающий эксперимент: найти dispatcher loop в `ai.dll`, сопоставить jump
|
||||
table с instruction sizes, построить disassembler и сравнить выполнение
|
||||
коротких scripts с оригиналом. Для evaluator-а условий отдельно проследить
|
||||
|
||||
Reference in new issue
Block a user