Есть проект на С:
Проект модификация для игры, требующая файлы оригинальной игры для запуска. Мод доступен в Steam:
Мод:
Оригинальная игра:
Итак,чтобы запуститься, моду нужно найти игровые архивы оригинала.
Вот как мод делает это в настоящее время:(см. Sys_steampath(поиск файлов оригинала)+следующий за ним Sys_steamworkshoppath(поиск дополнений в мастерской Steam)
Сейчас мод ищет файлы оригинала только в стандартной библиотеке Steam(её расположение он цепляет из реестра),которая расположена в папке самого клиента Steam. То есть чтобы запустить мод, игрокам нужно держать клиент,оригинальную игру и мод на одном жестком диске, в пределах одной библиотеки. В противном случае мод не запустится. Это несколько накладно.
Например, у многих, клиент Steam стоит на диске С: а игры на другом. При таком раскладе мод не найдет файлы оригинала, поскольку они не в библиотеке по умолчанию.
Таким образом, нужно научить мод искать кастомные расположения библиотеки Steam. Я узнал,что пути к ним обозначаются в файле “libraryfolders.vdf”. Подробнее см.здесь:
То есть нужно запарсить этот .vdf файл и заставить мод искать файлы оригинальной игры в том числе в пользовательских библиотеках. Тоже самое по аналогии провернуть с поиском дополнений из Мастерской Steam.
Удалось также отрыть парсер .vdf файлов на плюсах:
У проекта также есть свой wrapper для с++, который использовался для интеграции достижений: