From 31d849ddbf897a5087f46d9b3cb0054a397aeb1c Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 19 Feb 2026 16:10:57 +0400 Subject: [PATCH] updated docs --- docs/specs/missions.md | 13 +++++++++++++ docs/specs/nres.md | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/docs/specs/missions.md b/docs/specs/missions.md index f531132..f8b2cd4 100644 --- a/docs/specs/missions.md +++ b/docs/specs/missions.md @@ -31,3 +31,16 @@ 2. Полный перечень типов триггеров и их параметров. 3. Формальные правила разрешения конфликтов триггеров в одном кадре. 4. Набор replay parity-тестов «миссия от старта до завершения». +## 4. Mission -> Prototype -> Mesh bridge + +Для 3D-объектов миссии обязательна промежуточная стадия `objects.rlb`: + +1. `data.tma` задаёт либо прямой ключ объекта, либо путь к `*.dat`. +2. `*.dat` даёт `model_key` (в retail-наборе через `objects.rlb`). +3. Ключ резолвится в запись прототипа внутри `objects.rlb`. +4. Из прототипа выбирается фактический `*.msh` и архив (например `bases.rlb`, `static.rlb`, `fortif.rlb`). +5. Только после этого запускается стандартная цепочка материалов и текстур. + +Детальный формат и алгоритм вынесены в отдельную страницу: + +- [Object registry (`objects.rlb`)](object-registry.md) diff --git a/docs/specs/nres.md b/docs/specs/nres.md index 03b4c3e..bb31823 100644 --- a/docs/specs/nres.md +++ b/docs/specs/nres.md @@ -187,3 +187,16 @@ Fail-safe поведение: 1. Формальная семантика `attr1/attr2/attr3` для всех типов ресурсов (частично вынесена в профильные страницы `msh`, `material`, `texture`, `fxid`, `terrain`). 2. Полная спецификация поведения при не-ASCII именах (в реальных игровых архивах используется ASCII-практика; для Unicode-коллации движок не документирован). 3. Полная спецификация платформенных гарантий атомарной записи (формат данных закрыт, но OS-уровневые гарантии замены файла зависят от платформы и файловой системы). +## 12. Специализация `objects.rlb` + +Хотя `objects.rlb` формально является обычным `NRes`, его payload имеет отдельный семантический контракт: + +- запись каталога соответствует одному объектному прототипу; +- payload записи - массив фиксированных ссылок `ObjectRef64` (`archive_name[32] + resource_name[32]`); +- runtime-резолв меша выполняется через эти ссылки, а не через имя entry `*.msh` внутри `objects.rlb`. + +Это означает, что `objects.rlb` должен рассматриваться не как архив мешей, а как реестр привязок между mission/unit-ключами и фактическими ресурсами. + +См. детальную страницу: + +- [Object registry (`objects.rlb`)](object-registry.md)