aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes/04-world.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-20 07:11:45 +0300
committerValentin Popov <valentin@popov.link>2026-10-20 07:11:45 +0300
commitecc46ed17772816d6f0de565a0a1605d0299a1dd (patch)
treeefe00bb6c5c04005fd5e0ebaf125e3dc8aa4f190 /docs/tomes/04-world.md
parente4645b1d6278a2f766dac99815d3938c42f61640 (diff)
downloadfparkan-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.md20
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