Автор | Сообщение |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 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 указывает файл, в который сохранять.
Результат, если кому интересно: 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 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 28.07.17 22:46:39 | | | Очень крутая штука!
Если я не ошибаюсь, в программе не хватает исключения для флэта F_SKY1. Его копии с другим названием ни в коем случае не надо создавать, а то это портит всё небо в уровнях. Лучше просто использовать первый попавшийся везде. | |
|
1 |
2 |
1 |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 29.07.17 20:13:31 | | | Охъё. Это баг. С другой стороны, кто рисует собственный F_SKY1 | |
|
2 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 29.07.17 22:38:22 | | | Ну некоторые заменяют т. к. дефолтный не особо приятный на вид.) | |
|
1 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 05.08.17 04:29:39 | | | Да, ещё было бы круто автоматически добавлять переименованные свитчи в ламп SWITCHES чтобы они анимировались. А то сейчас вроде только вручную? | |
|
1 |
2 |
1 |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 05.08.17 09:50:19 | | | Добавляются, насколько я знаю. | |
|
2 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 05.08.17 12:51:58 | | | Хмм, вот на примере этого вада: https://www.doomworld.com/idgames/levels/doom2/j-l/legobase
Делаю wadstomp.py -iwad doom2.wad -map MAP01 -out testik.wad -file legobase.wad -outmap MAP01
Конфликтующие свитчи переименовываются в SW1S0000 и так далее, но в SWITCHES я их что-то не вижу. | |
|
1 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 15.08.17 13:15:17 | | | И вот ещё проблема, не знаю можно ли легко починить. Берём Деус Вульт: https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/dv Делаем:
wadstomp.py -iwad doom2.wad -map MAP01 -out testik.WAD -file DV.wad -outmap MAP01
И в яме получается такое, хотя должно быть вот так. Видимо замена дефолтных анимаций как-то путает программу. Приходится потом руками править. | |
|
1 |
2 |
1 |
|
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 15.08.17 15:37:15 | | | Походу там вообще немного анимации со свитчами сломаны в этом плане. Гляну. | |
|
2 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 05.10.17 19:30:31 | | | Ну как, что-нибудь получается там? Хочу ещё сборочки делать.) | |
|
1 |
2 |
1 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 25.11.17 16:53:00 | | | Мяу... | |
|
1 |
2 |
1 |
|
|
| |