diff options
| author | Valentin Popov <valentin@popov.link> | 2026-10-20 07:11:45 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-10-20 07:11:45 +0300 |
| commit | ecc46ed17772816d6f0de565a0a1605d0299a1dd (patch) | |
| tree | efe00bb6c5c04005fd5e0ebaf125e3dc8aa4f190 /docs/tomes/04-world.md | |
| parent | e4645b1d6278a2f766dac99815d3938c42f61640 (diff) | |
| download | fparkan-ecc46ed17772816d6f0de565a0a1605d0299a1dd.tar.xz fparkan-ecc46ed17772816d6f0de565a0a1605d0299a1dd.zip | |
fix(runtime): preserve native mission AI selection word
Diffstat (limited to 'docs/tomes/04-world.md')
| -rw-r--r-- | docs/tomes/04-world.md | 20 |
1 files changed, 20 insertions, 0 deletions
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 |
