From 9dcf6d456e0c2e06d45be001874ac72d7911703e Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 20:56:34 +0400 Subject: feat(runtime): load mission script bundles --- docs/appendices/script-vm.md | 8 ++++++++ docs/tomes/04-world.md | 8 ++++++++ 2 files changed, 16 insertions(+) (limited to 'docs') diff --git a/docs/appendices/script-vm.md b/docs/appendices/script-vm.md index d5b1607..71e2793 100644 --- a/docs/appendices/script-vm.md +++ b/docs/appendices/script-vm.md @@ -73,6 +73,14 @@ raw seven slots, resolved variable values и вход/выход вызова `0 controlled mission. До него compatibility VM возвращает явный unsupported result, а не «примерный» game command. +На границе mission runtime выбранный TMA clan `first_resource` теперь +материализуется как отдельный `MissionScriptBundle`: loader нормализует +`.scr`, декодирует его тем же bounded reader-ом и публикует immutable +package вместе с clan provenance. Headless report выводит число таких packages +и их named events. Это именно wiring входных данных, не VM execution: Init и +остальные events пока не dispatch-ятся, а ошибка чтения сохраняет +transactional rollback mission loader-а. + TMA properties остаются four raw `u32` words плюс имя, пока consumer/schema не задаст тип (integer/float bits/ObjectId/enum/fixed-point/index). В том числе сохраняются `NOT USED`; corpus подтверждает `Invulnerability`, life state, diff --git a/docs/tomes/04-world.md b/docs/tomes/04-world.md index 9961a49..f9c0e67 100644 --- a/docs/tomes/04-world.md +++ b/docs/tomes/04-world.md @@ -135,6 +135,14 @@ repeat relation_count: TRF или пустой ресурс. Tags различаются между кланами и должны сохраняться как raw-поля, пока их потребительская семантика не закрыта. +Runtime уже использует первую строку как доказанный путь выбора пакета: к ней +добавляется `.scr`, если расширение отсутствует, и полученный compiled package +декодируется losslessly до регистрации мира. Для каждого клана сохраняются +индекс, исходный base path, нормализованный `.scr` path и пакет событий. Это +не запускает opcode и не приписывает ему gameplay-эффект, но делает сценарный +input частью транзакции загрузки: missing/invalid package отменяет mission +load до публикации частичного world state. + Mode `0` имеет отдельный count-driven layout: ```text -- cgit v1.2.3