Намерен подогреть интерес к своей программочке...
Как говорил, уже сделал загрузку из лодов (дефы из спрайтлода) , распаковку/запаковку карт (да и незапакованные читает, для любой, в общем, карты подойдёт). ГИГАНТСКИЙ СЕНЬКС в помощи по данным разработкам
SERGROJ'юТакже оставил работоспособность программы и без героев, включив в "комплект поставки" нужные дефы, поэтому отныне будет всего два варианта (а не как до этого, отдельные архивы : графа, прога, исходники, и полный) то есть старый полный и новый полный (у старого нету глюков вроде как )) и возможно кому-то ещё пригодится распиленная на бмп графа и базовые исходники, а у новой понятно что )
Релиз будет, как добью основные баги, возможно в феврале.
Итак анонс функционала, обсуждайте, спрашивайте, предлагайте:
1. Открытие и сохранение карт, как обычных (запакованных) так и распакованных любой версии Героев3 (всего 4 разных) и любого размера (помимо стандартных размеров поддерживаются и иные размеры) .
2. Отрисовка карты 2 методами. Первый - на канве с использованием цветов, используемых для рисовки мини-карты, без визуального деления разных текстур (тайлов) одного типа почвы, с прорисовкой горизонтально-вертикальных дорог и без прорисовки рек. Второй - с графикой - либо грузит из прилагаемых к программе деф-файлов (и тем самым работа с программой автономна и не требует наличия героев на компьютере), либо загружает из ресурсов игры. Рисовка карты аналогична тому, как её видно в игре или нативном редакторе карт, но без рисовки объектов. Известно, что рисунки дорог лежат под ногами лошади героя, поэтому они смещены из центра тайла вниз на половину высоты, пока трогать не захотел... морока пока, а результат - чуть более правильно размещённая дорога, многие даже не заметят.
3. Кисть. Независимый или комбинированный выбор любого компонента рисовки - будь то почва, река, дорога или зеркало, и любого разумного размера кисти (раздельно горизонтального и вертикального). При использовании с графикой смена кисти сопровождается отрисовкой в рабочей области прямоугольника с изображением выбранного набора параметров кисти, например травяной тайл поверх которого река и дорога, к каждому из которых может быть ещё применено зеркало.
4. Изменение размеров карты. Всего есть 4 размера карт (но существует также патчер позволяющий делать и много других), можно между ними переключаться хоть на уменьшение, хоть на увеличение. При этом данные в создаваемой области при увеличении заполняются нулевой ячейкой - ей соответствует один из земляных кусочков без рек, дорог и зеркал. Данные при уменьшении карты из обрезаемой области теряются навсегда... потом претензии не принимаю )) конечно же, при случайном изменении помогает закрытие приложения без сохранения карты и открытие всего этого заново, с потерей предыдущих правок, посему, не забывайте периодически сохраняться.
5. Анду или ундо, кому как, по-русски отмена действия. Отменяет закраску 1 клетки, память выделяется динамически, то есть сколько хотите, столько и сделаете ундов. Скажу сразу, что, если вы рисуете кистью 36*36, то зараз можно получить 1296 ундов и если потом захотите отменить, то долго и упорно жмите на энтер (после клика мышкой по кнопке ундо), пока не дойдёте до нужного шага отмены. Конечно же, клетки, которые идентичны выбранной кисти, не перерисовываются и не сохраняются в ундо.
6. Заливка. Спецфункция для заливки однотипной поверхности почвы произвольной формы (не обязательно прямоугольной), в отличие от "заполнения", которое производится выбором нужной кисти и заданием размера для области заполнения по ширине и высоте, при этом однократный щелчок ПКМ заполняет область заданного размера этой кистью, при установке подтипа почвы в n/c , "не менять", работает почти аналогично заливке, но область прямоугольная и с заданными размерами, ну и без учета перехода одной почвы в другую. А заливка меняет строго 1 тип почвы на другой, причём только у определенного набора типов почв, ибо у них одинаковая индексация текстурок (переходные почвы - грязь, песок, вода и пустота, нельзя менять, у них иная индексация), при этом закрашиваются все (ну почти все ))) , надо отточить) соседние клетки того же типа. Для этого выставляется "fill" в любом из полей для размера кисти, если выбраны оба то зливка идёт по всем соседним клеткам, если только в одном, то заливка ограничивается на то число которое выставлено в направлении вниз и вправо соответственно.
7. Интерфейс. Прокрутка карты осуществляется перемещением мышки по краю видимой области карты с зажатой ЛКМ, либо, когда фокус на карте, скролится горизонтально колёсиком а вертикально - колёсиком с зажатым Ctrl/Shift (хотя и скролбары есть), логичным и удобным считаю рисовку нажатием правой кнопки мышки, выбор - левой кнопкой мышки, при котором в информационном поле расписываются параметры выбранной клетки.
8. Сбои и баги (да, это не баги, а фичи, то бишь такой же функционал

). Приложение легко может повеситься, версия ещё небольшая

. Могут не открываться или не сохраняться карты, хотя я приложил к этому месту кода большие усилия, переписывая его и тестируя на десятках карт (да и с алгоритмом распаковки могут быть проблемы, ибо код не мой а разработчиков распаковщика). Также может произойти какой-нибудь сбой при рисовке, анду и т.п. Естественно, принимаю в таком случае багрепорты на почту, чем детальней, тем скорее я пофиксю. И апдейтну сайт, для удобства введена система ревизий по багам, она идет по версии, например 0.1.1.00, и 00 - ревизия.
0. Опенсурс. Писал на Дельфи7 с использованием свободно распространяемых описаний форматов карт героев (на русском) и т.п. Графику извлек из ресурсов. Можете использовать исходники, но я пока буду работать и над расширением функционала сам, правда по мере того, как сам сочту нужным. Исходники более менее комментированы на английском языке. Собственно, как и водится в этих случаях - фривар, "as is", никаких гарантий, сам тестил на картах и играл, наблюдал то, что нарисовал своим редактором и в игре, и в нативном редакторе карт.
Ну и конечно, велкам вашим предложениям по наработке о препятствиях, думаю дополнить скрипт установкой препятствий и удалением их с брейкпоинтами где надо, вида !!IF:M^^; и в таком виде изучать адресное пространство в артмане, дабы изучить структуры для поля битвы и препятствий, ПОМОЩЬ ДИКО ПРИВЕТСТВУЕТСЯ )))