aboutsummaryrefslogtreecommitdiff
path: root/docs/reference/tma.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-22 10:45:23 +0300
committerValentin Popov <valentin@popov.link>2026-10-22 10:45:23 +0300
commitdcc64598916dba92de74c6e27a2359fa08b72e84 (patch)
tree51b9d767e1650ebfff3d0fa7ddb378e37f5bcd6b /docs/reference/tma.md
parent374db10daf5db88a52596edebc6cf5f2d560065f (diff)
downloadfparkan-dcc64598916dba92de74c6e27a2359fa08b72e84.tar.xz
fparkan-dcc64598916dba92de74c6e27a2359fa08b72e84.zip
feat(runtime): initialize mission ore properties
Diffstat (limited to 'docs/reference/tma.md')
-rw-r--r--docs/reference/tma.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/reference/tma.md b/docs/reference/tma.md
index 2a84d6d..8eb6f66 100644
--- a/docs/reference/tma.md
+++ b/docs/reference/tma.md
@@ -92,3 +92,15 @@ slot `+0x40` в путь выбора AI в Behavior. Поэтому Rust сох
`Property` состоит из четырёх raw `u32` и имени. Typed views разрешены только
для доказанных property names и consumers.
+
+Для свойств объекта `MisLoad.dll!FUN_10003ab0` (RVA `0x3ab0`) переставляет
+дисковые слова в runtime-запись, а `FUN_100040b0` (RVA `0x40b0`) проходит её
+таблицу в порядке runtime-дескрипторов. Поиск имени учитывает длину и байты с
+точным регистром и использует первое совпадение. В подтверждённом пути
+дисковое `raw_value[1]` становится первым DWORD аргумента setter-а, поэтому
+значение передаётся как биты, без промежуточного float-преобразования.
+Например, Behavior регистрирует `CurrentOre` под кодом `5`; его setter кладёт
+полученные биты в основное слово свойства `0x02000100`. `MaximumOre` с кодом
+`4` читает дополнительное слово той же записи, а setter этого дескриптора
+ничего не меняет. Подтверждение классов и native getter/setter находится в
+[главе о Behavior](../tomes/06-behavior.md#начальные-свойства-запасов-руды).