Уже лучше, но многое можно улучшить. Сначала о косяках:
1. Когда добавляешь новый конфиг приложения или производишь смену конфига через выпадающее, строка Game executable визуально не обновляется. Смена происходит только после выхода и перезахода в опции. По идее, этим окошкам не нужны кнопки свёртывания и, тем более, развёртывания на весь экран.
2. Несколько косячные эффекты свёртывания окна в панели задач, когда окошко опций или добавления новой конфигурации открыто.
3. Полная белиберда с добавлением и использованием конфигов для модов. Вместо перечисления недостатков текущей системы проще объяснить, как можно сделать намного удобнее и нагляднее. В частности, дефолтная строка запуска мода никак не отображается сейчас. Нельзя и по-быстрому подправить её. Для модов не запоминается последняя использованная конфигурация, при переключении мода нужно заново конфигурацию из меню. При использовании дефолтной конфигурации кнопки Launch и Create *.bat неактивны (хотя моды всё же можно запускать двойным кликом на списке и дефолтная строка при этом работает). На кой нужно поле Configuration непонятно, ибо и так видно, что за конфигурация выбрана в меню выше.
4. Правки gameinfo.txt по-прежнему не вижу среди возможностей. Кстати, на мой взгляд абсолютно не важно парсить данные файлы и выяснять, ксашевские они или не ксашевские. Пусть просто будет возможность править их, а юзер сам разберётся, хочет он их редактировать или нет.
5. Строка Game, как и поле Configuration, смысла не имеет, ибо это и так следует из выбора мода. Если говорить о полезной информации о моде, которая может отображаться вместо неё, так это папка мода или url_info.
В общем, предлагаю следующий вариант вида и функционала лончера. Со списком модов сейчас вроде всё в порядке, так что перехожу сразу к правой части окна.
1. Строка с выбором экзешника (ака Game configuration) должна быть в основном окне программы. Пусть диалог настройки добавления нового экзешника или правки дополнительных свойств выводится в дополнительном окошке, но сама строка нужна в главном окне, для возможности быстрой смены - выбрал из выпадающего меню и готово, без необходимости открывать вспомогательные окна. Рядом со строкой экзешника размещается одна кнопка: Options. При её нажатии выводится то же окошко, которое сейчас появляется при нажатии Options. Только сначала там идёт строка Active configuration c возможностью создать или удалить новую игру. Ниже отображается путь к экзешнику текущей выбранной конфигурации, для информации. Ниже идёт строка Default command line params. Причём эта строка своя для каждой игровой конфигурации. Т. е. переключаясь на новую игру, мы переключаем и дефолтную строку. Например, для Ксаша и Стим-ХЛ дефолтные строки могут быть разные. Производя быстрый выбор игровой конфигурации в основном окне, мы легко и непринуждённо изменяем и дефолтную строку, в соответствии с сохранёнными настройками. В окошке опций можно добавить специальную галочку совместимости с Xash3D. Она будет означать, что при выборе данной конфигурации информация о настройках модов будет в первую очередь считываться из файлов gameinfo.txt (и только если этот файл в папке мода не найден, что возможно в случае, если мод ещё не запускался, только после этого лончер будет пытаться найти liblist.gam и считать информацию о моде из него).
2. Под строкой Game configuration следует строка Current mod configuration (то, что сейчас называется просто Configurations). Пустых конфигураций здесь быть не должно, как сейчас. Даже если никаких сохранённых конфигураций для выбранного нет, должен отображаться хотя бы пункт Default (потому что в любом случае каждый мод имеет хотя бы дефолтную конфигурацию, состоящую из -game папка_мода + добавочная дефолтная строка, если она прописана в Game configuration). Рядом предлагаю разместить тоже только одну кнопку Options (вместо двух текущих кнопок New и Delete). Окошко опций мода аналогично окошку опций игры (с похожими функциями, но со своей спецификой) - позволяет добавлять, удалять, редактировать конфигурации. В основном же окне мы просто выбираем одну из ранее сохранённых конфигураций из выпадающего меню. Причём, должна быть возможность сохранять в дефолтную строку мода (ту, что выводится автоматически при выборе мода из списка) особых параметров. Чтобы не плодить лишних конфигураций, если это не требуется для данного мода.
3. Третьей строкой идёт поле Actual launch parameters. Здесь отображается в редактируемом (!!!) виде текущее состояние командной строки для любого выбранного мода, с учётом выбранной выше конфигурации. Не важно, создана для него особая конфигурация или есть толmко дефолтная, но эту строку (включая ту часть, которая добавляется из дефолтной строки Game configuration) должно быть
полностью видно, и должна быть возможность по-быстрому подправить её (например, чтобы использовать введённую строку только для текущего запуска мода, без необходимости сохранять какие-либо конфигурации). Кнопка Save также может быть здесь (для быстрого сохранения введённой строки в текущую выбранную конфигурацию, в том числе в дефолтную для данного мода).
Под этими тремя строками идёт область информации о моде, получаемой из liblist.gam (или из gameinfo.txt) - папка мода (необязательно), версия мода, тип мода, url мода, что-то ещё (необязательно). Кнопки Launch и Create *.bat должны быть активны всегда, как только выбран любой мод в списке. Кстати, без выбора мода кнопка Launch может делать быстрый запуск основной игры с дефолтными параметрами.
Ну, вот как-то так
[ADDED=Qwertyus]1395881397[/ADDED]
А, ещё, во избежание потенциальных конфликтов, можно переименовать config.ini на launcher.ini, чтобы не использовать слишком стереотипное название файла.