(C) Research/Volgasoft FLN пакет v1.0 ...Крутых утилит на свете много, полезных мало... Содержание 1. Для чего и что могут 2. Детальки 3. Комплект поставки 4. Заключение 5. Приложение 1. Для чего Мне понадобилась серия прог для ре- шения таких задач как: а) Рипанье графики с пц и других платформ б) Ужимание маски в 2(4) раза для экономии памяти (и соответст- венно для разжимания и после- дующего редактирования) в) Перевода в линейный формат (и обратно) графики ибо лучше па- куется д) Hегеморройного удаления серии спрайтов из блока е) Перевода в GRF формат и обратно Посему был написан пакет из 4-х программ: BMP2F - программа для перевода 1 бит- ных BMP произвольного размера в файл спрайтмастера; FLN UTITIES - утилиты одноименные с пакетом (см. ниже); F2GRF - конвертор FLN файла спрайтмас- тера в GRF файл; GRF2F - конвертор GRF файла в FLN файл спрайтмастера; FLN утилиты (собственно программа) могут использоваться для: a) Конверсии произвольных файлов SpriteMaster 'а в формат FLN (кон- вертится сразу после загрузки, да- льнейшая работа ведется только име- нно с этим форматом); б) Удаления группы лишних спрайтов из FLN файла SpriteMaster 'а; в) Преобразования группы спрайтов в линейный формат (по столбцам, потом графика лучше пакуется) и обратно; г) Сжатия группы спрайтов по верти- кали в 2 раза (2 метода OR и AND); д) Разжатия группы спрайтов по вер- тикали (преобразование, обратное пп.г); е) Увеличение размера по вертикали группы спрайтов на 1 знакоместо (выбирается байт заполнения #00/#FF); 2. Детальки Все набивать влом, посему вот кусок письма от меня к Эльфу/CPU : ------------------begin------------------ от 18.02.2000 Я доволен как дитя: FLN UTILITIES beta теперь с линеаризатором, и от него толк есть (около 12-20% при паковке ли- нейного и обычного блока графики). Hо это было ночью, а щас я сляпал Гамма ве- рсию с функцией Y++ (увеличение высоты спрайта на единицу), а то спрайтмастер грузить так в облом. (Если не понятно - это для того, чтобы маски нечетной высо- ты делать четной, а потом плющить, не то ползнакоместа потеряется). Вроде как инструкцию надо бы напи- сать, но так обломно! (типа спрайты мож- но удалять кнопкой DEL, спрайты высотой один знак лучше не плющить, а все не удалять и т.п.) от 19.02.2000 00:55 ночи Заходил Бивис , уговаривал меня бросить извращаться с ФЛH утилитами и уменьшить всех монстров, чтобы в банку влезли (посе того, как я затребовал его компрессор Хаффмана). С ним сделали де- льта версию (добавился y++Fill, чтобы менять каким байтом заливать добавляемую строку: для масок 255, для спрайтов -0). Так как обнаружился глючечек пришлось сделать епсилон версию (в дельте он есть, а в ранних версих нет). ------------------end-------------------- Добавлю, что я уже перелопатил уйму графики с помощью этой проги, посему на- шелся тока один недостаток - программа иногда скидывается... Отсюда мораль - отписываться надобно. Да и еще когда вы грузите файл спрайтмастера , прога скидывает себя в банку, посему посе выхода из файла SPM все настройки меняются на старые!!! Вто- рая мораль - настройся, потом работай). 3. Комплект поставки BMP2F.E - экзешник для писюка; F2GRF.B - конвертор в GRF; GRF2F.B - конвертор в F; FLN EPS.B - утилиты одноименные с пакетом; 4. Заключение Знаю, что подобных утилит много, но конвертить BMPшки произвольного размера с писюка нечем. Удалять спрайты в спрай- тмастере долго, а для ужимания маски в артстудии я еще не готов. У конверторов в F и GRF интерфейса нет, но он и не очень-то нужен, сообще- ний тоже кстати нет. Результат работы можно посмотреть по каталогу. Да и еще посоветую почитать помощь к PV1.18 ,на счет имен в файле спрайтма- стера. Ясно одно: написать черно-белую иг- рушку стало чуточку проще. 5. Приложение (FLN= FLOAT LINE NO_ATR) Формат FLN файла Sprite Master: {F_HEADER}{FLNSprite1#}...{FLNSprite#N} (заголовок файла)(спрайт1)...(спрайтN) F_HEADER { FSIZE DW ?; длина самого файла -9 байт TYPE db ? AtrType db ?; 0-NoAtr, 1-Symbol, 2-Graph BMPtype db ?; 0-Symbol, 1-Line ySize db ?; любое значение xSize db ?; любое значение COUNTER db ?; всего спрайтов в файле (от нуля) } FLNSprite { Length dw dy*dx*8+4;длина спрайта с шапкой dy db ?; высота в знакоместах dx db ?; ширина в знакоместах Body ds dy*dx*8; тело спрайта } Формат GRF файла: Этот форматец несомненно более удо- бнее, чем FLN для выноса на экран и очень простой: org .c000 COUNTER db ?; всего спрайтов (от 1) { ; шапки спрайтов dx1 db ?; ширина в знакоместах dy1 db ?; высота в знакоместах ptr1 dw body1; адрес спрайта } ; и вся структура повторяет- ; ся стока, ; скока спрайтов ; шапки кончились, начинаются ; тела ; { body1 ds dx1*dy1*8; тело спрайта } ;и тел соотвественно стока ;скока прописано в COUNTER