UnrealKaraulov / newbspguy

Goldsrc map viewer/editor without decompiling. Also can view .MDL models.
The Unlicense
63 stars 13 forks source link

Option to cut off path of WADs + WAD information #31

Closed Qwertyus3D closed 1 year ago

Qwertyus3D commented 1 year ago

Повтор запроса на улучшение, сделанного в ветке исходной программы. Добавить функцию стирания путей к WAD-файлам в свойствах карты. Это может быть частью оптимизации, либо сделать отдельную кнопочку где-то в окне свойств WORLDSPAWN. Пути нужны только при компиляции, а в готовой карте они мешают чтению списка WAD.

Чтобы было: halflife.wad;xeno.wad;liquids.wad вместо: /my lovely Steam directory location/steamapps/common/Half-Life/valve/halflife.wad;/my lovely Steam directory location/steamapps/common/Half-Life/valve/xeno.wad;/my lovely Steam directory location/steamapps/common/Half-Life/valve/liquids.wad;

Некоторые мододелы вставляют более десятка WAD в карту, и чтение этой информации представляет серьёзную проблему.

Также можно было бы добавить информацию об используемых WAD в виджет Debug info. Чтобы был виден весь список WAD карты, и какие из них на данный момент подключены, а каких не хватает (а то иногда текстур не видно и пойди разберись). И ещё иногда получается так, что в список WAD карты попадают WAD, которые фактически не задействованы. Т. е. ни одна текстура из них не используется. Получается, что карта требует WAD, который ей не нужен. И была бы полезна информация о том, какие текстуры не найдены, либо о том, что из данного WAD никакие текстуры на карте не используются.

UnrealKaraulov commented 1 year ago

@Qwertyus3D

Но если название wad файла одинаковое, но разные папки Например cstrike/wadname.wad valve/wadname.wad

Или таких случаев не бывает?

Qwertyus3D commented 1 year ago

Нет, движок же не ищет WADы в конкретных папках. Он приоритетом грузит файлы с указанным именем из папки мода, если их там нет - то из основной директории игры, либо из fallback_dir и ей подобных. Пути к WADам нужны только при компиляции карты, потом это избыточная информация. Тем более, что пути там не относительные, а вполне конкретные и привязанные к ПК пользователя, на котором делается компиляция. Которые не будут иметь отношения к папке мода или игры пользователя.

Qwertyus3D commented 1 year ago

Например, VHLT сами удаляют пути при компиляции, для них это стандартная процедура. К тому же, в BSP имеется лимит на общее число символов в графе wad, но многие об этом даже не знают. Т. е. теоретически, если пути не удалять, то карта может скомпилиться с урезанным списком WAD.

UnrealKaraulov commented 1 year ago

@Qwertyus3D https://github.com/UnrealKaraulov/newbspguy/commit/26868a4a191e67445a7457333262bf40deda307f ?

Qwertyus3D commented 1 year ago

@UnrealKaraulov Традиционно, не компилится :D

UnrealKaraulov commented 1 year ago

@UnrealKaraulov Традиционно, не компилится :D

исправил :)

Qwertyus3D commented 1 year ago

Спасибо, тоже работает. Правда, не сразу отыскал, где это. Но реализовано удобно! 👍

UnrealKaraulov commented 1 year ago

@Qwertyus3D ну не знал куда это засунуть :)

в General настройки?

UnrealKaraulov commented 1 year ago

@Qwertyus3D а вторую часть не сделал

Qwertyus3D commented 1 year ago

Я просто не подумал, что это в виде автоматической настройки сделано. Поэтому искал какую-нибудь кнопку или пункт меню, но оказалось даже проще. Мне нравится, можно так и оставить!

UnrealKaraulov commented 1 year ago

@Qwertyus3D добавил в дебаг вывод информации о текстурах

Qwertyus3D commented 1 year ago

@UnrealKaraulov Последние два билда крашатся в процессе прогрузки карты. Карту видно некоторое время, потом вылетает, до окончания прогрузки.

UnrealKaraulov commented 1 year ago

какая карта?

Qwertyus3D commented 1 year ago

Любая у меня.

UnrealKaraulov commented 1 year ago

@Qwertyus3D да я поспешил убрать reloadTextures не заметил что там устанавливается texturesloaded в false, надо отменить изменения в коде тогда крашить не будет, но я на работе и возможно только завтра утром сделаю

Qwertyus3D commented 1 year ago

Понял, жду. И вопрос по ходу дела - а что, редактор не позволяет визуализировать клип-браши, которые ограничивают движение игрока? Я так понял, он их вообще не отображает, и нет даже опции, по которой можно их включить/отключить. Либо это где-то в общей мешанине клипнодов.

Qwertyus3D commented 1 year ago

И ещё очепятка: XZ

UnrealKaraulov commented 1 year ago

Понял, жду. И вопрос по ходу дела - а что, редактор не позволяет визуализировать клип-браши, которые ограничивают движение игрока? Я так понял, он их вообще не отображает, и нет даже опции, по которой можно их включить/отключить. Либо это где-то в общей мешанине клипнодов.

Я в этом не особо разбираюсь честно говоря :) Кто это такие клип браши? Можно пример?

Qwertyus3D commented 1 year ago

Ну, когда маппер не хочет, чтобы игрок куда-нибудь запрыгнул или свалился, то создаётся невидимый браш с текстурой Clip. И игрок не может сквозь него физически пройти. Т. е. технически эта информация в скомпиленной карте есть. Но нет возможности как-то отдельно в опциях рендера включить и посмотреть, в каких местах проход ограничен.

UnrealKaraulov commented 1 year ago

Аа ну я понял, не уверен что смогу сделать отдельно рендер для таких, но надо будет проверить

UnrealKaraulov commented 1 year ago

@Qwertyus3D что на счет крашей в https://github.com/UnrealKaraulov/newbspguy/commit/597784a7d5ca0e2d0ada9682ab7193f2d1c342ed

Qwertyus3D commented 1 year ago

Запускается, но поломалась поддержка включения/отключения FGD. Отображает путь вместе enabled? и не находит FGD, соответственно. И вообще, файл "похудел" на 200 Кб примерно :)

Qwertyus3D commented 1 year ago

Этот вариант https://github.com/UnrealKaraulov/newbspguy/actions/runs/3615915432 всё ещё крашится.

UnrealKaraulov commented 1 year ago

Ну, когда маппер не хочет, чтобы игрок куда-нибудь запрыгнул или свалился, то создаётся невидимый браш с текстурой Clip. И игрок не может сквозь него физически пройти. Т. е. технически эта информация в скомпиленной карте есть. Но нет возможности как-то отдельно в опциях рендера включить и посмотреть, в каких местах проход ограничен.

Я так понял их отображает сейчас, но только если они в виде отдельной сущности. Самому даже интересно как сделать что бы отображались и worldpawn.

https://github.com/UnrealKaraulov/newbspguy/commit/771e3272709679fc0ffa5bd9f169f366ba548df1

Что на счет этого варианта по крашам?

Qwertyus3D commented 1 year ago

@UnrealKaraulov Всё так же вылет.

UnrealKaraulov commented 1 year ago

@UnrealKaraulov Всё так же вылет.

Вылетает только при открытом окне DEBUG или при загрузке карты?

@Qwertyus3D у меня нет вылета на картах cstrike/valve , можно какой-то конкретный пример карты ?

Qwertyus3D commented 1 year ago

У меня вылетает любая. 2-3 секунды крутится Загрузка, потом вылет

Qwertyus3D commented 1 year ago

Пробовал удалять настройки из конфига по отдельности, и весь конфиг целиком, всё равно крэш.

UnrealKaraulov commented 1 year ago

@Qwertyus3D а ОС какая Windows или Linux

Qwertyus3D commented 1 year ago

Win10

UnrealKaraulov commented 1 year ago

bspguy.zip @Qwertyus3D это версия с DEBUG, должно писать log.txt в папку с программой, после вылета надо его мне скинуть сюда (log.txt) я попробую узнать где вылетело.

Qwertyus3D commented 1 year ago

Не хватало ДЛЛ, скачал с dll-files.com. Теперь вылет сразу же: 0xc Лога нет.

UnrealKaraulov commented 1 year ago

@Qwertyus3D понял, сделал что бы не требовало DLL bspguy.zip

Qwertyus3D commented 1 year ago
Start bspguy editor with map: D:\Games\Steam\steamapps\common\Half-Life\valve\maps\c0a0.bsp
Load settings from : D:\Games\Xash3D\_Tools_\BSPGuy\bspguy.cfg
Parsing .\_Res_\fgd\halflife_2022_op4.fgd
Bsp version: 30
Read lump id: 0. Len: 28066. Offset 1275736.
Read lump id: 1. Len: 168320. Offset 124.
Read lump id: 2. Len: 928816. Offset 1303804.
Read lump id: 3. Len: 59520. Offset 201540.
Read lump id: 4. Len: 52573. Offset 1223160.
Read lump id: 5. Len: 48600. Offset 261060.
Read lump id: 6. Len: 50760. Offset 309660.
Read lump id: 7. Len: 73640. Offset 360420.
Read lump id: 8. Len: 616395. Offset 606764.
Read lump id: 9. Len: 60544. Offset 434060.
Read lump id: 10. Len: 33096. Offset 168444.
Read lump id: 11. Len: 9118. Offset 494604.
Read lump id: 12. Len: 34520. Offset 571412.
Read lump id: 13. Len: 67688. Offset 503724.
Read lump id: 14. Len: 832. Offset 605932.
WARNING: Unrecognized type body (line 3227) in FGD halflife_2022_op4
Generated 158 point entities cubes
(CRC "232076952")
Saving CRC key to Worldspawn
Loading WAD E:\SteamLibrary\steamapps\common\Sven Co-op\svencoop\halflife.wad
Loading WAD E:\SteamLibrary\steamapps\common\Sven Co-op\svencoop\decals.wad
Loading WAD E:\SteamLibrary\steamapps\common\Sven Co-op\svencoop\xeno.wad
Missing WAD: sample.wad
Loaded 77 embedded textures
Used 1 wad files(include map file)
Calculating lightmaps
Fit 3682 lightmaps into 1 atlases
Qwertyus3D commented 1 year ago

По поводу ошибки FGD, она не может быть связана с вылетом. Т. к. вылет был и без FGD вообще. А так строчка такая: @PointClass base(Monster) studio("models/v_tripmine.mdl") body(3) sequence(7) = monster_tripmine : "Active tripmine" Это как бы указано, какое body и sequence должны использоваться по дефолту при использовании модели v_tripmine.mdl для размещения на карте. FGD делался с перспективой на редактор с поддержкой моделей. Вроде строчка правильная сама по себе.

UnrealKaraulov commented 1 year ago

@Qwertyus3D понял ну это можно будет использовать, если я когда-нибудь смогу добавить рендер моделей :) Уже пытался, но не получается, максимум что я смог, это кучу рандомных треугольников нарисовать вместо модели :)

UnrealKaraulov commented 1 year ago

@Qwertyus3D bspguy.zip Вот еще одна дебаг версия, тут уже краш дамп и обработчик исключений сделал :)

Мне нужен log.txt и если появится, то "bspguy____.dmp" файл.

Qwertyus3D commented 1 year ago
Crash WINAPI_LASTERROR:0. Exception code: C0000005. Exception address: P
Generating minidump at path D:\Games\Xash3D\_Tools_\BSPGuy\bspguy_20221205_123255.dmpCrash WINAPI_LASTERROR:0. Exception code: C0000005. Exception address: P
Generating minidump at path D:\Games\Xash3D\_Tools_\BSPGuy\bspguy_20221205_123255.dmp

bspguy_20221205_123255.zip

UnrealKaraulov commented 1 year ago

@Qwertyus3D краш в драйвере видеокарты видимо у меня драйвер видеокарты как-то обходит ошибку и я краша не вижу.

Я обновление выпустил, может теперь не крашит ? https://github.com/UnrealKaraulov/newbspguy/commit/87d78ff9ad5f4f195d079acfac5664b6acd5aa83

Qwertyus3D commented 1 year ago

Вылетает, только теперь ещё быстрее :D

Qwertyus3D commented 1 year ago

Я как бы карту в процессе загрузки вижу, энтити на ней отображаются тоже, виджеты. Нет такого, чтобы видеоподсистема не срабатывала. Не уверен, что проблема в драйвере. Ошибка ведь появилась после "добавил в дебаг вывод информации о текстурах. Хотя, если у тебя не крашится, то тоже непонятно.

UnrealKaraulov commented 1 year ago

@Qwertyus3D как на счет этой bspguy.zip , dmp файлы и log.txt надо :) возможно щас более полная будет информация о краше.

UnrealKaraulov commented 1 year ago

@Qwertyus3D я как бы изменения вернул, не знаю крашить может только окно debug если оно сразу появляется

Qwertyus3D commented 1 year ago

Ппц ссылка, "githu.com не позволяет установить соединение." Никак не мог понять, почму страница не открывается.

Qwertyus3D commented 1 year ago

Ошибки всё те же

Crash
 WINAPI_LASTERROR:0.
 Exception code: C0000005.
 Exception address: 00007FF9AB06C9C9.
 Main module address: 00007FF7DA570000
Generating minidump at path D:\Games\Xash3D\_Tools_\BSPGuy\bspguy_20221205_134921(2).dmp
Crash
 WINAPI_LASTERROR:0.
 Exception code: C0000005.
 Exception address: 00007FF9AB06C9C9.
 Main module address: 00007FF7DA570000
Generating minidump at path D:\Games\Xash3D\_Tools_\BSPGuy\bspguy_20221205_134921(1).dmp

BSPGuyDump.zip

Qwertyus3D commented 1 year ago

Попробовал убрать виджет Debug с экрана (висел свёрнутым), не помогло.

Qwertyus3D commented 1 year ago

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

UnrealKaraulov commented 1 year ago

@Qwertyus3D я слегка не туда вставил textureLoaded = false, из-за чего могло крашить.

https://github.com/UnrealKaraulov/newbspguy/commit/31ba604e56afe4c3b7c15ae6a60612d4774fde41 перестал крашить?

Qwertyus3D commented 1 year ago

Проверил 2 билда, оба крашат.

Qwertyus3D commented 1 year ago

Самому даже интересно как сделать что бы отображались и worldpawn.

771e327

Думаю, надо Дядю Мишу спрашивать, кроме него мало кто ответит, какая информация остаётся в карте после компиляции.