Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Скрипт для сборки нескольких BOOM-карт в компиляцию
   Список разделов - Местечко мапперов и моддеров - Скрипт для сборки нескольких BOOM-карт в компиляциюОтветить
АвторСообщение
ZZYZX
Lieutenant Colonel
Next rank: Lieutenant Colonel after 6 pointsМодератор форума
3634

Doom Rate: 1.78

Posts quality: +561
Ссылка на пост №1 Отправлено: 14.07.15 22:08:15
Собственно, сабж.
Вдохновлялся злым вемодом и результатами ручной сборки 12 уровней в 1 файл.

Написано на питоне. Дополнительных модулей не требует.
Питон можно скачать здесь: https://www.python.org/downloads/
Выбирать версии 2.7.x.
Ссылка: https://github.com/jewalky/wadstomp

Пример использования скрипта для сборки spd15.wad из fixmaps.zip:
Свитчи -iwad, -file работают так же как в думе.
Свитч -map определяет название карты, которую нужно вытащить. Карта берётся последняя из всех загруженных вадов.
Свитч -outmap определяет название карты после вытаскивания, если такая уже есть — будет заменена.
Свитч -out указывает файл, в который сохранять.
Скрытый текст:

python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\arch_tx.wad fixmaps\01-arch.wad -outmap MAP01 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\pk1.wad fixmaps\02-pk1.wad -outmap MAP02 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\arch_tx.wad fixmaps\03-arch.wad -outmap MAP03 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\04-iwad.wad -outmap MAP04 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\arch_tx.wad fixmaps\05-arch.wad -outmap MAP05 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\06-iwad.wad -outmap MAP06 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\07-iwad.wad -outmap MAP07 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\arch_tx.wad fixmaps\08-arch.wad -outmap MAP08 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\arch_tx.wad fixmaps\09-arch.wad -outmap MAP09 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\pk2.wad fixmaps\10-pk2.wad -outmap MAP10 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\11-iwad.wad -outmap MAP11 python wadstomp.py -iwad ..\doom2.wad -map MAP01 -out spd15.wad -file fixmaps\12-iwad.wad -outmap MAP12



Результат, если кому интересно: http://www.mediafire.com/download/qkce3mrb4142j69/spd15.wad
(буду очень благодарен, если кто-нибудь там пробежится с ноклипом и подтвердит, что все текстуры на своих местах; свитчи на MAP09 точно работают)

Фичи:
1) Удаляет неиспользуемые текстуры в процессе (если точнее, он их банально не копирует).
2) Не заменяет изображения из IWAD. Никогда. В том плане, что текстуры переименовываются.
3) Мерджит ANIMATED и SWITCHES.
4) Идентичные текстуры старается тоже просто так не плодить, сливает с существующим контентом (идентичные = MD5 от всех патчей текстуры совпало с MD5 от всех патчей другой текстуры, или два флэта совпали). Реюзает патчи.
5) Читает TEXTURE1, TEXTURE2, F_* и FF_*. Пишет только TEXTURE2 и FF_*.
6) Копирует музыку для карт MAP01..MAP32 или E1M1..E3M9. Отдельная музыка для E4M# не поддерживается по техническим причинам.

Баги (?):
7) Работает ДОЛГО вследствие активного (от слова везде) подсчёта MD5. Это сделано чтобы можно было совсем не ориентироваться на всяческие названия и мерджить идентичный контент.
8) swan_defswani.dat используется скриптом для узнавания ванильных анимаций/свитчей (то есть например тупая замена BLOOD1/BLOOD3 файлов для перекраски). Свитчи из некоторых IWAD'ов там не прописаны.
Чтобы каждый раз не трогать основной файл, название файла можно менять свитчом -defswani. Т.е. например сделать (самостоятельно) swan_plutonia.dat и подключать его через -defswani swan_plutonia.dat
9) 2/3 кода писалось интуитивно и с минимальным участием сознания, а половина вообще вчера ночью, поэтому КАК оно работает я уже не помню (серьёзно). И вообще код лапшой висит.

Тестировалось на примере вемодовского спидмапа и в prboom-plus.
В ванили собранные вады с большой вероятностью не работают (или определённые их аспекты). Спасибо Арчи за уточнение.


Ня.
2 1 1
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - Скрипт для сборки нескольких BOOM-карт в компиляцию