да что-то не очень то и помогло...
rquadspr:
incbin gfx\sprites\rocketquad.smd
за меткой
rquadspr закрепляется файл rocketquad.smd, в котором 5 спрайтов по 2х2 тайла каждый.
rquad_tile equ (rquadspr-new_units_spr)/32+base
тут черт знает что происходит. видимо расчитывается какой это номер тайла по отношению к самому первому.
Rquad_spr_cfg1: dc.w 0, $10, $10, $FFF8, spr2x2, rquad_tile+00, $FFF8
Rquad_spr_cfg2: dc.w 0, $10, $10, $FFF8, spr2x2, rquad_tile+04, $FFF8
Rquad_spr_cfg3: dc.w 0, $10, $10, $FFF8, spr2x2, rquad_tile+08, $FFF8
Rquad_spr_cfg4: dc.w 0, $10, $10, $FFF8, spr2x2, rquad_tile+12, $FFF8
Rquad_spr_cfg5: dc.w 0, $10, $10, $FFF8, spr2x2, rquad_tile+16, $FFF8
тут видимо индивидуальные настройки по каждому углу поворота.
$10, $10 - видимо это координаты х, у по отношению к 0, 0 ячейки карты. типа если скажем ячейка карты у нас 64х64, то надо отступить от края на 16 пикселей и начинать рисовать тайлы юнита. вот только почему они обозначены как unused, unused
$FFF8 - черт знает что за Y_pos. 65528 или там с минусом? тут бы прояснить.
spr2x2 - видимо размер что 2 тайла на 2.
rquad_tile+00 - номер тайла, откуда начинать рисовать тот 2х2
$FFF8 - тож самое непонятное, только что по Х.
однако почему только 5 штук? разве их не должно быть 16?
то есть тогда таблица выглядела бы по другому:
угол0, используется файлнейм1, размер 2х2, сдвигать по Х на $10, по Y на $10, зеркалох = 0, зеркалоу = 0, половинках = 0, половинкау = 0
угол22, используется файлнейм2, размер 2х2, сдвигать по Х на $10, по Y на $10, зеркалох = 0, зеркалоу = 0, половинках = 0, половинкау = 0
*****
угол112, используется файлнейм4, размер 2х2, сдвигать по Х на $10, по Y на $10,
зеркалох = 1, зеркалоу = 0, половинках = 0, половинкау = 0
то есть до 90 они шли без зеркал по очереди, после 90 - используются те-же файлы, но уже применяется зеркало, как пример 112 градусов - зеркалит по оси Х.
тут-же всего 5 вариантов расписано - я не понимаю как система понимает остальные положения. это ладно в том файле они пять положений идут друг за другом 0, 22, 45, 67, 90... но вдруг это соник? там же 0, 125, 90. где-то должна быть эта моя таблица по 16 позициям поворота. ну или если этот танк, там то нету промежуточных - значит всего 8. и тем не менее тут для рокетного квада должно быть 16, а их получается всего 5 и то не вся информация какая должна быть - нет упоминания зеркал и флага половинки, то есть инструкции клонировать, зеркалить и склеивать, как это должно быть в случае с кериолом.
Добавлено позже:а так-же в таблице должен быть флаг использования анимации. забыл
как в случае с пехотой. и видимо этот не столько флаг, сколько видимо массив из 3 значений - 3 кадра анимации. если все 3 - одно значение, значит анимации нет. если там разные адреса спрайтов - значит анимация есть.
вот тогда мозаика в моей голове складывается. хотя еще не совсем - ибо есть еще орнитоптёры