docs: rewrite MkDocs documentation
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# TMA
|
||||
|
||||
`data.tma` -- основное описание расстановки и логической конфигурации миссии.
|
||||
Файл перечисляет paths, clans, objects, свойства, ссылку на ландшафт и extras.
|
||||
|
||||
## String primitive
|
||||
|
||||
```c
|
||||
struct LpString {
|
||||
uint32_t byte_length;
|
||||
uint8_t bytes[byte_length];
|
||||
};
|
||||
```
|
||||
|
||||
Reader продвигается ровно на `4 + byte_length`. Завершающий NUL не является
|
||||
обязательной частью framing. Для человекочитаемого вида используется legacy
|
||||
ANSI/CP1251 view, но исходные bytes сохраняются.
|
||||
|
||||
## Top level
|
||||
|
||||
```text
|
||||
u32 format_version
|
||||
u32 path_count
|
||||
PathRecord paths[path_count]
|
||||
u32 clan_section_version
|
||||
u32 clan_count
|
||||
ClanRecord clans[clan_count]
|
||||
u32 object_section_version
|
||||
u32 object_count
|
||||
PlacedObject objects[object_count]
|
||||
LpString land_path
|
||||
u32 mission_flag
|
||||
LpString description_raw
|
||||
u32 extra_section_version
|
||||
u32 extra_count
|
||||
ExtraRecord28 extras[extra_count]
|
||||
```
|
||||
|
||||
Все 60 TMA Частей 1 и 2 проходят parser до точного EOF. Версии стабильны:
|
||||
верхний уровень `1`, clan section `6`, object section `10`, property schema
|
||||
`1`, trailing section `1`.
|
||||
|
||||
## PlacedObject
|
||||
|
||||
```text
|
||||
u32 raw_kind
|
||||
u32 class_or_flags
|
||||
LpString resource_name
|
||||
u32 raw_after_resource
|
||||
u32 identity_or_clan_raw
|
||||
f32 position[3]
|
||||
f32 orientation[3]
|
||||
f32 scale[3]
|
||||
LpString instance_name
|
||||
u32 raw_after_name
|
||||
i32 link0
|
||||
i32 link1
|
||||
u32 property_schema_version
|
||||
u32 property_count
|
||||
Property properties[property_count]
|
||||
```
|
||||
|
||||
`Property` состоит из четырёх raw `u32` и имени. Typed views разрешены только
|
||||
для доказанных property names и consumers.
|
||||
Reference in New Issue
Block a user