[Не актуальная информация]
Имею проблему с sec файлами:
тайлы террейна подразделяются на две группы : Base и Connect. Базовые имеют имена типа drtbse0a, grsbse0b и т.д. Connected - drtgrs1a.
В любом случае имя состоит из префикса (tile_id) и двух чаров :
drt bse 0 a
drt grs 1 a
Проблема в том, что вот этот документ https://dl.dropboxusercontent.com/u/10924648/arc/sec.txt - единственная доступная инфа по спецификации. Если с восстановлением имен base тайлов проблем нет, то с connected печаль беда: tile_id всегда равен нулю, но данная спецификация это умалчивает.
Если кто-то располагает информацией о недостающем звене или имеет актуальные контакты криптона, то прошу поделиться.
+
Нашел два несовпадения с спецификацией :
1. Если старший байт (или второй старший ниббл?) эквивалентен нулю, то номер connected тайла , будет ошибочен (для v2).
TILE_ID &3F | OF
0000.0010.0100.1010.0110.1011.1100.0001
drtdg12e - 03 (0011)
0000.0000.0000.0100.0110.1001.1100.0001
drtbg12g - 04 (0100)
0000.0000.0000.0101.0110.1101.1100.0001
bg1bg22c - 05 + (0101)
0000.0001.0100.0110.0110.0101.1100.0001
bg2bog2d - 06 + (0110)
0000.0001.1000.0111.0110.0111.1100.0001
drtsw12a - 07 (0111)
0000.0000.0000.1000.0110.0001.1100.0001
sw1sw22c - 08 + (1000)
0000.0010.0000.1001.0110.0101.1100.0001
sw2sw32f - 09 + (1001)
0000.0010.0100.1010.0110.1011.1100.0001
sw3swr2h - 10 + (1010)
0000.0010.1000.1011.0110.1111.1100.0001
swrdwr2a - 11 + (1011)
0000.0010.1100.1100.0110.0001.1100.0001
drtrok2c - 12 (1100)
0000.0000.0000.1101.0110.0101.1100.0001
drtWK12d - 13 (1101)
0000.0000.0000.1110.0110.0111.1100.0001
drtWK22a - 14 (1110)
0000.0000.0000.1111.0110.0001.1100.0001
Если кто-нибудь незамутненным взглядом нашел зависимость - напишите.
Нашел
drtrok2c - 12 (1100)
0000.0000.0000.1101.0110.0101.1100.0001
drtWK12d - 13 (1101)
0000.0000.0000.1110.0110.0111.1100.0001
drtWK22a - 14 (1110)
0000.0000.0000.1111.0110.0001.1100.0001
0000.0000.1101 -1 = 12 (1100)
0000.0000.1110 -1 = 13 (1101)
0000.0000.1111 -1 = 14 (1110)
2. Не указано, что если (data >> 12 & 0xF) >= 14 то отнимаем 14 (или data >> 12 & 0x7 ?). Аналогично последующему
if char_1 number value >= 8, its value is decreased by 8