aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tomes')
-rw-r--r--docs/tomes/02-architecture.md7
-rw-r--r--docs/tomes/06-behavior.md23
2 files changed, 22 insertions, 8 deletions
diff --git a/docs/tomes/02-architecture.md b/docs/tomes/02-architecture.md
index 0d0ea11..527d7b2 100644
--- a/docs/tomes/02-architecture.md
+++ b/docs/tomes/02-architecture.md
@@ -363,6 +363,13 @@ CollObject, Control и PhysicalModel, пропуская отсутствующÐ
Статическая цепочка ещё не доказывает исполнение активного Control update на
миссии. Rust пока сохраняет начальные provider-снимки и не изменяет их этим путём.
+В текущем runtime `step_headless` и `frame` получают время очереди явным
+аргументом `u32`. По нему запускается представленный ресурсный планировщик
+Behavior, после чего обрабатываются очередь мира и отложенные удаления.
+Ресурсные изменения публикуются после успешного мирового шага, поэтому ошибка
+не оставляет мир и ресурсы на разных шагах. Это начало расчётного цикла;
+отдельное обновление Control, общая VM и движение ещё требуют подключения.
+
## World3D
World3D связывает игровые объекты, события, время, ввод, камеру, сетевые
diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md
index 0ebbbf7..84f4f6e 100644
--- a/docs/tomes/06-behavior.md
+++ b/docs/tomes/06-behavior.md
@@ -202,17 +202,17 @@ SuperAI для записей кланов, затем обновляет Behavi
Это полезное начало сценария, но ещё не целая игровая жизнь AI. Текущий runtime
не воспроизводит аргумент обратного вызова в `AI+0x3fc`, защиту от повторного
-входа `AI+0x78`, одноразовую метку `AI+0x8a8` или обновления Behavior на игровых
-тиках. При этом один конкретный шаг Behavior — распределение ресурсов — уже
-исполнен на исходной DLL с искусственными объектами. Rust пока не вызывает
-регулярный шаг: игровой мир ещё не предоставляет нужные ресурсные интерфейсы.
+входа `AI+0x78`, одноразовую метку `AI+0x8a8` или полное обновление Behavior на игровых
+тиках. Распределение ресурсов исполнено на исходной DLL с искусственными
+объектами и подключено к Rust `step_headless`: явное время очереди определяет,
+какой клан должен выполнить очередной ресурсный шаг.
При полной загрузке Rust уже восстанавливает членство объектов в клановых
списках Behavior и задаёт их начальные доли. Остальные слова записи хранятся
сырыми: семантика только первого из пяти слов хвоста установлена для
нормализации.
Runtime также не подменяет очередь оригинала: вызывающая сторона сама передаёт
время, а локальный генератор Rust пока учитывает только случайные числа
-восстановленного стартового шага.
+восстановленного стартового шага и ресурсного планировщика.
### Откуда берутся объекты распределителя
@@ -355,9 +355,16 @@ Control selector `1`; неподдержанное свойство, запроÑ
арифметическое значение возвращает ошибку. Обновления нескольких кланов, их
расписания и RNG фиксируются одной транзакцией: если обязательный запрос
позднего клана не разрешён, ранее подготовленные изменения остаются
-неприменёнными. Приложение пока не вызывает
-этот API из игрового цикла, а динамические callbacks, которые переносят
-количество между Control provider-строками, ещё не моделируются. Поэтому это
+неприменёнными. Обычные `step_headless(engine, input, queue_time_ms)` и
+`frame(engine, queue_time_ms)` запускают этот расчёт до обработки очереди мира.
+Они сначала готовят ресурсные изменения, затем выполняют шаг мира и публикуют
+ресурсное состояние после его успеха. Ошибка любой стадии сохраняет прежние
+ресурсы; ошибка подготовки также не продвигает мировой tick. До срока
+планировщика большие таблицы ресурсов не копируются.
+
+Оконное приложение пока запускает static preview и не вызывает этот расчётный
+путь. Динамические callbacks, которые переносят количество между Control
+provider-строками, ещё не моделируются. Поэтому это
исполняемый загруженный resource step, а не полный симулятор миссии.
Для настоящих ресурсов AutoDemo тест проходит несколько временных точек: