fix(assets): parse native CTL tags 2 and 5
Docs Deploy / Build and Deploy MkDocs (push) Successful in 33s

This commit is contained in:
Valentin Popov committed 2026-10-18 11:42:05 +04:00
1 parent 6a0cf0c374
commit ec62f4f2e2
2 files changed
+60 -20

No files matched your search

+9
View File
@@ -424,6 +424,15 @@ type 4, в том числе четыре `f_smalllight_y` с offsets 104–107
offsets 119–121. В `fr_l_gener.ctl` найдено 35 строк type 4, включая
`f_gener_ball` с offset 85.
Control.dll `+0x8B10` передаёт указатель текущей записи диспетчеру `+0x2D4B0`.
Теги 2 и 5 направляются в общий читатель `+0x21D50`: таблица виртуальных методов
тега 2 (`+0x3CBD8`) вызывает его через обёртку `+0x29650`, а таблица тега 5
(`+0x3CDF8`) указывает прямо на него в позиции `+0x1C`. Читатель потребляет
заголовок размером `0xB0` байт со счётчиком `u32` по `+0xAC`, затем `count`
значений `u32`, слово длины и, при ненулевой длине, строку с завершающим NUL;
указатель возврата указывает на следующую запись. Поэтому для тегов 2 и 5 подтверждён общий
структурный формат; смысл их полей пока не назначен.
Resolver прототипов хранит явную registry-ссылку на `.cpt` отдельно от ссылки
на `.ctl`. Если строки type 4 разобраны и явная ссылка на CPT есть, подготовка
читает ровно указанные archive/name; имя CPT не выводится из имени CTL. В CPT