aboutsummaryrefslogtreecommitdiff
path: root/docs/appendices/script-vm.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/appendices/script-vm.md')
-rw-r--r--docs/appendices/script-vm.md18
1 files changed, 13 insertions, 5 deletions
diff --git a/docs/appendices/script-vm.md b/docs/appendices/script-vm.md
index 69ea54f..dc42959 100644
--- a/docs/appendices/script-vm.md
+++ b/docs/appendices/script-vm.md
@@ -408,9 +408,11 @@ bundle, но остальные потребители исходного гло
В Rust также нет значения аргумента в `AI+0x3fc`, recursion guard `AI+0x78`
или одноразового latch `AI+0x8a8`. Поэтому это связанный начальный поднабор, а
не полная активация SuperAI. После полной загрузки узкая Rust-реализация
-вызывается явно через `advance_loaded_mission_resources(engine, queue_time_ms)`;
-runtime не читает системную очередь, а приложение пока не вызывает API из
-игрового цикла. Шаг использует разрешённые handles и представленные snapshots
+вызывается из `step_headless(engine, input, queue_time_ms)` и
+`frame(engine, queue_time_ms)`. Отдельный
+`advance_loaded_mission_resources(engine, queue_time_ms)` остаётся доступен
+для прямого ресурсного шага. Runtime не читает системную очередь, а оконное
+приложение пока использует static preview. Шаг использует разрешённые handles и представленные snapshots
профилей и Control, поэтому не воспроизводит отсутствующие в них callbacks. При
ошибке ограниченного `Init` Rust отклоняет полную загрузку и сохраняет прежний
мир и состояние генератора; такая политика отката принадлежит Rust loader-у.
@@ -479,8 +481,14 @@ selector `1` на интерфейсе получателя становится
только для полного режима; preview остаётся статическим. Явный API
`advance_loaded_mission_resources` использует очередь времени, расписание,
профили и представленные Control-таблицы, чтобы исполнить этот ограниченный
-шаг над загруженным состоянием. `step_headless` по-прежнему шагает только
-`World`.
+шаг над загруженным состоянием. `step_headless` и `frame` требуют явный
+`u32` clock и используют ту же подготовку: ресурсные изменения, расписания и
+RNG остаются временными до успешного `World::step`. Ошибка ресурсов не
+продвигает мир; ошибка мировой очереди не публикует ресурсные изменения.
+Игнорируемый тест `headless_step_runs_resource_schedule_and_rolls_back_both_error_paths`
+на AutoDemo проверяет равенство срока, исполнение следующего шага и обе ветви
+отказа, включая отсутствие Control-таблицы у позднего клана и устаревший handle
+в очереди. Это не запускает отдельный clock Control или полную миссионную VM.
### Добавление и нормализация долей