Новый редактор Bif и Lbm - Страница 3 - Моды на MTW и STW - TWoW.Games - Сообщество любителей умных игр Перейти к содержанию
TWoW.Games - Сообщество любителей умных игр

Новый редактор Bif и Lbm


Sturm LS

Рекомендуемые сообщения

2 Sturm LS:

Ну когда у тебя вместо экземпляра класса создавался его предок и не работали все переопределенные и новые свойства - это ещё понятно было в чём дело. Надо было бы просто разобраться почему так происходит, и заставить создаваться именно экземпляр самого класса.

А вот с функцией не должно быть никаких проблем! Просто при генерации dll или в исходниках делаешь ей имя совместимое с Дельфовым синтаксисом, проверяешь что вышло tdump.exe (он где-то в Delphi\Bin лежит) и делаешь заголовок экспортного файла. Ты, как я понимаю, так и поступил. Типы данных к указателям для вызова функций небось тоже не забыл привести? Четр его знает что делается .... :(

Где ошибка не пойму - пришлёшь примерчик может быть? Свой исходник, dll-ку и Delphi-йский заголовок. Я хоть и пробовал всего разок - другой пару библиотечек коммерческих на Дельфи перетянуть, но может хоть угляжу что свежим глазом. :unsure:

Ссылка на комментарий
  • Ответов 121
  • Создана
  • Последний ответ

Топ авторов темы

  • AlexRaven

    6

  • Engineer

    36

  • Chernish

    8

  • Sturm LS

    55

Топ авторов темы

  • 2 недели спустя...

Ну вот, вроде наваял я библиотечку позволяющую из Delphi пользоваться моими компонентами. Правда, реализованно это довольно геморно - передача параметров через буфер обмена, но работает.

В архиве лежат:

BifDll.dll - сама библиотечка

BIFDLL.PAS, BIFDLL.H - определения функций (для Delphi и C++ соответственно)

Readme.txt - текст с описанием комманд и параметров (передаваемых через буфер обмена)

Каталог Demo содержит пример работы из Delphi.

 

часть первая

Bifdll.part1.rar

Ссылка на комментарий

Старался чтобы было все понятно, но, конечно, отвечу на любые вопросы, и постараюсь помочь.

 

часть вторая

Bifdll.part2.rar

Ссылка на комментарий

Уважаемые господа,

 

может все кроме меня уже давно в курсе, но считаю своим долгом сообщить, что

 

на Орге с 27 сентября лежит несколько прекрасных утилиток, которые легко перегоняют *.tga в *.lbm, *.lbm в *.bif, а *.bif в *.buf.

Пользоваться ими не слишком удобно, зато результат 100% (доступными ранее средствами мне никогда не удавалось достичь

полного соответствия палитры *.bmp и палитры *.bif).

 

Приметы:

CA_BIF_BUF_Utils.zip 27-Sep-2003 09:52 192k

 

С уважением,

Ссылка на комментарий
Пользоваться ими не слишком удобно, зато результат 100% (доступными ранее средствами мне никогда не удавалось достичь

полного соответствия палитры *.bmp и палитры *.bif).

Странно. Вроде у нас выложены уже три инструмента и все работают лучше чем орг-овские? Ты точно уверен, что редакторы SturmLS и GWS допускают ошибки? У меня не встречалось. И вдобавок удобно.

 

Найдешь ошибку - пиши сразу автору, что да как.

Ссылка на комментарий
  • 5 недель спустя...

Sturm LS

Что то у меня MedKonstruktor3 глючит - не грузит правильно палитру из файла. Не мог бы ты сделать отдельное окно с просмотром/загрузкой/реджактированием палитры, а том числе для каждого цвета отдельно. Ипроверить ещё раз как именно она сохраняется в Bif файлах? А то что-то у меня глюки идут с палитрами - не могу добиться загрузки её в точности вместе с файлом.

 

С компонентом поразбирался - большое спасибо. Правда пока в редактор ещё не подключил его. Ещё буду, наверное, доделывать после выпуска мода.

 

AVRELIAN

может все кроме меня уже давно в курсе, но считаю своим долгом сообщить, что

 

на Орге с 27 сентября лежит несколько прекрасных утилиток, которые легко перегоняют *.tga в *.lbm, *.lbm в *.bif, а *.bif в *.buf.

Дай, пожалуйста ссылку поточнее - я их не нашел.

Изменено пользователем Engineer
Ссылка на комментарий

2 Engineer:

 

Engineer:

Что то у меня MedKonstruktor3 глючит - не грузит правильно палитру из файла.

 

Чуть по подробней опиши проблему (что делаешь, что происходит, что должно было произойти), если не сложно.

 

Engineer:

Не мог бы ты сделать отдельное окно с просмотром/загрузкой/редактированием палитры, а том числе для каждого цвета отдельно.

 

Конечно, сделаю, но опять же поподробнее (что значит - в том числе для каждого цвета отдельно).

 

Engineer:

И проверить ещё раз как именно она сохраняется в Bif файлах? А то что-то у меня глюки идут с палитрами - не могу добиться загрузки её в точности вместе с файлом.

 

Опять же, чуть по подробней опиши проблему.

 

Engineer:

С компонентом поразбирался - большое спасибо. Правда пока в редактор ещё не подключил его. Ещё буду, наверное, доделывать после выпуска мода.

 

Всегда пожалуйста, правда не совсем удачная реализация, но это максимум что мне удалось сделать, не переписывая компонент на Object Pascal.

 

Engineer:

Дай, пожалуйста ссылку поточнее - я их не нашел.

 

Я их слил, если надо могу послать по e-mail. Но мне они показались не удобными и не без проблемными.

Ссылка на комментарий

Sturm LS

Я их слил, если надо могу послать по e-mail. Но мне они показались не удобными и не без проблемными.

Ага, нашел - действительно паршивые и врут с палитрой ещё похлеще...

 

Чуть по подробней опиши проблему (что делаешь, что происходит, что должно было произойти), если не сложно.
Опять же, чуть по подробней опиши проблему.

Проблема простая. Я смотрю на новый битмап для заливки в BIF файл с полностью другой палитрой. Палитра не стандартная. При импорте BMP картинки с новой палитрой в существующий BIF файл - картинка сильно искажается. Цвета смазываются или пропадают. Операция "Загрузить палитру из файла" не помогает. Т.е. если палитра хорошая, - правильная то всё идёт как надо, я если нет - получаем искажение цветов! Т.е. надо так грузить палитру и картинку, чтобы обеспечить точное соответствие каждого пиксела номеру цвета в палитре! Почему сбивается не знаю - это только на некоторых палитрах. Прилагаю пример: старая и новая (плохая?) палитра для файла заставки игры.

Попробовал изменить цвета в палитре стандартной - хорошей картинки, и .. .что Вы думаете - получил дикие искажения, как буднто конструктор вообще не грухит палитру из BMP в Bif. Приходится брать BIF с уже подходящей палитрой и в сделаную с него BMP всё копировать фотошопом, а потом в него же грузить конструктором - дико не удобно.

 

Конечно, сделаю, но опять же поподробнее (что значит - в том числе для каждого цвета отдельно).

Если бы было окно отображением палитры, возможностью её полностью сохранить/загрузить в файл, возможностью изменить любой цвет в палитре (это кажется вообще стандартный диалог), Возможностью переместить цвет в палитре и, и ... ну надо подумать. может грузить палитру из файла в этом же окне?

Короче, нужна полноценная работа с палитрой - выбор цвета и рисование - хотя бы только карандаш этим цветом. Для начала хватило бы.

PaletteFiles.zip

Ссылка на комментарий

Sturm LS

Хотелось бы, увидеть сам BMP-файл, если можно.

Если не лезет на форум, то по e-mail, если не сложно.

 

Отправил - это Jpeg для новой заставки мода. Размер = 1 мег с хвостом. Выслал на мейл: michael@ews.spb.ru - правильно???

 

Вот что было:

Мне прислали новую графику для мода, я начал её устанавливать. Файл заставки был только в формате TGA или JPG.

 

Я его конвертнул из Jpg в BMP и поставил индексированые цвета из стандартной палитры windows, - потом грузил конструктором3 в оригинальный файл: Medieval - Total War\frontend_files\Load Screen.BIF ... и ... ничего не выходит. Цвета сбиваются. Пробовал обрезать палитру, даже удалось загрузить её, но тогда она не сохраняется.

 

Сделал тогда BMP образ исходного файла Medieval - Total War\frontend_files\Load Screen.BIF - открыл фотошопом, вставил туда новый BMP, сохранил. Потом добавил твоим конструктором этот файл в BIF, - всё заработало, хотя цвета не такие яркие как хотелось, -их в оригинальном BIF-е просто нет подходячщих.

 

Третий эксперимент - взял BMP образ оригинального BIFа, поправил фотошопом палитру (изменил пяток цветов на более яркие), загрузил обратно - все цвета искажены! Ну откуда такая хрень? Он что, какой то цвет считает прозрачным и нормализует фон на него? Или ещё какая гадость.

 

Короче, без редактора палитры - никак. Ни посмотреть её ни изменить. Ну хоть как у RSW - было сделано, хоть простенькую? И парочку тулсов рисовальных, а?

Ссылка на комментарий

2 Engineer:

 

 

Engineer

Отправил - это Jpeg для новой заставки мода. Размер = 1 мег с хвостом. Выслал на мейл: michael@ews.spb.ru - правильно???

 

Все правильно, получил.

 

Engineer

Вот что было:

Мне прислали новую графику для мода, я начал её устанавливать. Файл заставки был только в формате TGA или JPG.

 

Посмотрел я это дело, так и есть - ни одна из моих "надежд" не оправдалась.

Полез я в исходники, стал разбираться, и вспомнил не очень приятную вещь - в палитре Bif-файла цвет описывается 2 байтами (три байта RGB "пакуются" в два очень "злым" алгоритмом - отсечением определенных бит каждого байта). На практике это означает, что перевести в палитру Bif-файла можно не каждый цвет RGB (т.е. превести можно любой - с усечением).

 

Engineer

Короче, без редактора палитры - никак. Ни посмотреть её ни изменить. Ну хоть как у RSW - было сделано, хоть простенькую? И парочку тулсов рисовальных, а?

 

Будем думать.

Ссылка на комментарий

Не далее как сегодня делал новое здание - вербовщик , чтоб швейцарцев нанимать :D Взял из Сегуна картинку с португальским торговым пунктом , вырезал , залил нулевкой , хотел в пустой Bif воткнуть - фиг-вам - называется , то все черное , то разноцветная смесь , час бился , потом плюнул , взял картинку из Сегуна и тупо в Bif-редакторе карандашиком по клеточкам нулевку расписал :lol: Вроде получилось :lol:

post-13-1075401534.jpg

Ссылка на комментарий

ЛЮБИТЕЛЬ

выложил бы ты это здание как положено: ревьюшка, Инфо-пик, coloured, names-descriptions, строка из файла зданий...

мы бы посмотрели в действии:)

что такое - нанимать посредством панели тренировки? По русски - тренировать наемников что ли? или у него большой плюс к привлечению - это вроде супер-Inn?

Ссылка на комментарий

Sturm LS

Полез я в исходники, стал разбираться, и вспомнил не очень приятную вещь - в палитре Bif-файла цвет описывается 2 байтами (три байта RGB "пакуются" в два очень "злым" алгоритмом - отсечением определенных бит каждого байта). На практике это означает, что перевести в палитру Bif-файла можно не каждый цвет RGB (т.е. превести можно любой - с усечением).
Будем думать.

 

Да я вот думал. Ну у BIF-а ладно - с него спроса нет, тогда и карты графические на 16 цветов - это уже супер! Так что с ним ясно. Но отрезать биты?! Если известно какой цвет и как именно кодируется в BIFе, то можно взять цвет RGB, сгенерить наиболее близкий по цвету в кодировке BIFа и вписать эти два новых байта. Не обрезая, а пересчитывая! Боюсь, правда это маетная работа. Не сам алгоритм, конечно, а поиск информации про столь древний формат.

 

++Можно даже ещё проще. Заранее сделать для всех BIF-ов дефолтную 256-цветную палитру. Т.е. не пересчитывать и не искать похожий цвет в текущей палитре при импрте файла, а сразу грузить новую палитру, приводить её цвета в соответствии с заранее известной стандартной и устанавливать стандартную. Так проще. Можно ещё сделать список защищенных цветов - цветов, которые нельза перегружать новыми. Это нужно в ряде файлов, чтобы сохранить нулевой цвет-цвет фона, например, и т.п.

Изменено пользователем Engineer
Ссылка на комментарий
ЛЮБИТЕЛЬ

выложил бы ты это здание как положено: ревьюшка, Инфо-пик, coloured, names-descriptions, строка из файла зданий...

мы бы посмотрели в действии:)

что такое - нанимать посредством панели тренировки? По русски - тренировать наемников что ли? или у него большой плюс к привлечению - это вроде супер-Inn?

Он просто из INN сделан - это пока атавизм , наверное отрублю :lol:

Выложу.. вместе с модом , через ~ месяц :lol:

Ссылка на комментарий

2 Engineer:

 

Engineer

Да я вот думал. Ну у BIF-а ладно - с него спроса нет, тогда и карты графические на 16 цветов - это уже супер! Так что с ним ясно. Но отрезать биты?! Если известно какой цвет и как именно кодируется в BIFе, то можно взять цвет RGB, сгенерить наиболее близкий по цвету в кодировке BIFа и вписать эти два новых байта. Не обрезая, а пересчитывая! Боюсь, правда это маетная работа. Не сам алгоритм, конечно, а поиск информации про столь древний формат.

 

Алгоритм урезания очень прост - инорируются три младших бита каждого байта в массиве RGB. Т.е. цвет R:121(0111 1001) G:51(0011 0011) B:240(1111 0000) и цвет R:127(0111 1111) G:48(0011 0000) B:247(1111 0111) после преображование в BIF-палитру и обратно станут цветом R:120(0111 1000) G:48(0011 0000) B:248(1111 0000), что иногда приводит к неприятным преобразованиям. Таким образом диапазон интенсивности цветовых составляющих (R, G и B) с 0-255 сужается всего до 32-х значении (0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248), и вместо 16 777 216 цветов мы имеем только 65 536 цветов. И бороться с этим невозможно.

 

Engineer

++Можно даже ещё проще. Заранее сделать для всех BIF-ов дефолтную 256-цветную палитру. Т.е. не пересчитывать и не искать похожий цвет в текущей палитре при импрте файла, а сразу грузить новую палитру, приводить её цвета в соответствии с заранее известной стандартной и устанавливать стандартную. Так проще. Можно ещё сделать список защищенных цветов - цветов, которые нельза перегружать новыми. Это нужно в ряде файлов, чтобы сохранить нулевой цвет-цвет фона, например, и т.п.

 

Делать универсальную палитру нереально, надо из 65 536 цветов выбрать 256 которые будут везде (В некоторых картинках нет светлых цветов, а в некоторых только светлые).

 

Я сейчас над всем этим крепко думаю, придумаю как это лучше сделать - сделаю.

Ссылка на комментарий

Sturm LS

Алгоритм урезания очень прост -<...>
Здорово. Спасибо, и и не подозревал что всё так тупо и просто. Теперь хотя бы ясно какие палитры он делает неправильными!

 

Делать универсальную палитру нереально, надо из 65 536 цветов выбрать 256 которые будут везде (В некоторых картинках нет светлых цветов, а в некоторых только светлые).

 

Я имел ввиду не точное совпадение, а приближенное. Ведь тот же Фотошоп как то умеет при вставке изображения приближать его новой палитрой достаточно близко. Если сделать универсальную палитру достаточно разнообразной, то и приближение будет срабатывать более или менее близко. Останется только найти алгоритм поиска наиболее близкого цвета к заданому, что вполне возможно. Разве не так?

Ссылка на комментарий

Sturm LS

Часть четвертая, последняя:

 

З.Ы. Объяснения в понедельник, сейчас некогда.

Спасибо! Родина Вас не забудет!

Ссылка на комментарий

2 Engineer:

2 ALL:

 

Благодаря Engineer'у обнаруженна серьезная ошибка в работе MedivalConstractionKit с палитрой. Ошибка исправленна в новой версии программы, и как только будут добавленны новые возможности работы с палитрой и рисования - она будет выложенна в инструментарии вместо старой. К сожалению, в связи с рядом обстоятельств, спрогнозировать когда это произойдет - нет никакой возможности.

 

2 Engineer:

 

Как оказалось, при упаковке цвета, байты массива RGB накладывались с не обрезнными тремя младшими байтами, в результате, при работе с палитрой полученной не из Bif-файла, могли возникнуть (и возникали) серьезные искажения цветов.

Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×
×
  • Создать...

Важная информация

Политика конфиденциальности Политика конфиденциальности.