From ecc46ed17772816d6f0de565a0a1605d0299a1dd Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Tue, 20 Oct 2026 08:11:45 +0400 Subject: fix(runtime): preserve native mission AI selection word --- docs/tomes/04-world.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'docs/tomes') diff --git a/docs/tomes/04-world.md b/docs/tomes/04-world.md index e486e18..dcd53b2 100644 --- a/docs/tomes/04-world.md +++ b/docs/tomes/04-world.md @@ -195,6 +195,26 @@ Property properties[property_count] большинстве записей равен `(1,1,1)`. `instance_name` может быть пустым у unit-ссылки или содержать stem размещённого прототипа. +Сразу за строкой ресурса лежат два DWORD, и их нельзя склеивать в одно +«владение» или менять местами. Первый, `raw_after_resource`, оригинал использует +как индекс выбора AI. Второй сохраняется отдельным полем +`identity_or_clan_raw`, но одно его имя ещё не говорит, кому объект принадлежит. +В runtime draft оба значения остаются раздельными: + +```rust +MissionObjectDraft { + raw_after_resource: object.raw_after_resource, + identity_or_clan_raw: object.identity_or_clan_raw, + .. +} +``` + +Мы знаем это по пути создания: загрузчик копирует первое слово из TMA-записи в +строку схемы объекта; затем хост передаёт его ArealMap и World3D, а World3D +направляет его в ветку выбора AI. Соответствие этого индекса типу `OwnerId` в +`fparkan-world` не подтверждено. Смещения, условия версий и контрольные суммы исследованных +сборок приведены в [справочнике TMA](../reference/tma.md). + Свойства хранятся как ordered property bag: ```text -- cgit v1.2.3