feat(runtime): load mission script bundles
This commit is contained in:
@@ -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 нормализует
|
||||
`<base>.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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user