Загружать как часть dataDirs не выйдет - для загрузки конфига нужен вызов dataDirs(). У тебя выходит круговая зависимость - для путей нужен конфиг, для конфига нужны пути.
Поэтому dataDirs() лучше оставить как есть, но вставить доп. путь между загрузкой конфигов и файлов игры. Еще один момент - сейчас конфиг загружается после вызова loadFilesystem(). Его нужно перенести пораньше:
а) организовать синглтон который инициализируется по вызову и только после загрузки конфигов.
б) перенести settings.init() в initFilesystem() чтобы можно было из него прочитать доп. пути.
Я бы все таки сделал одну строку с одним путем - так проще и понятнее для игроков. Ну и плюс добавить диалог для выбора пути - в Qt это тривиально (не знаю есть уже этот диадог у тебя или нет).
Прямой выбор шаблона (пока) невозможен, добавлять шаблоны прямо из RMG.txt (где они в самих героях хранятся) нельзя, но менять шаблоны как угодно можно (см файл /config/rmg.json). Гайд как его правильно редактировать - отдельная тема .
Шаблонов пока мало, то что выбирается один и тот же возможно совпадение - выбор шаблона зависит от размера карты.
Предположим, проект в QtCreator я собрал, он вроде даже запускается. Но поскольку меня донимает падение при создании новой игры, вопрос, куда имеет смысл ткнуться в первую очередь?
void CClient::init() и дальше долго-долго дебажиться?
еще вариант - падение сервера при загрузке карты. В этот момент подключится к нему отладчиком довольно сложно так как отладка нескольких программ сразу работает криво. Можно устроить такой трюк:
ставим брекпоинт на такой строке в коде:
th.update(); //put breakpoint here to attach to server before it does something stupid
запускаем 2ю копию QtCreator-а, открываем проект и подключаемся к серверу.
в первой копии продолжаем работу клиента, ждем пока упадет сервер во второй копии.
В процессе добавления двеллингов “по-новому” с моды.
Заметил что-то типа бага.
Заменял ДЕФ Замка/Столицы на новый ДЕФ другого размера и конфигурации входа.
Добавил
"mask": “”…“VVAVVVV”]
То есть активный вход в город переместился (с третьего справа квадрата).
В игре запускаю карту, захожу в город в этом месте, и игра для одного дефа просто вылетает, для другого как бы заходит, но экран города не появляется, герой просто на карте в нужном месте стоит.
Похоже, где-то жесткая привязка к стандартному квадратику входа осталась.
Будет расположено в другом месте, только и всего.
Просто при генерации карты надо размещать героя на клетке, соотв. “А”, а не в стандартном месте.
Ну и учитывать в RMG расположение “A”, “B”, чтобы не получить непроходимости. Ведь если делать объекты для карты через шаблоны, то и работать они должны через них. Я не прав?
Я понимаю. Обычная карта со случайным замком рассчитана на стандартные 9 городов.
К ней так же не подойдут новые двеллинги (они могут быть других размеров) и не подойдут в будущем новые варианты стандартных объектов. Их же не надо переделывать на старые входы?
В принципе, реализовать можно - если будет патч это исправляющий, то не вижу причин его не принимать. Скорее всего где-то жестко прописано смещение к посещаемой позиции вместо вызова getVisitableOffset() или как там ее.
Но такие города поломают кучу карт где у случайного города только одна незаблокированная клетка. Просмотрел пару карт и уже вижу те, где изменение маски города ломает карту (город заблочен или же может появится “лишний” проход)
Ну я хотел как-нибудь исправить выбор подходящих жилищ - что бы вместо случайных двеллингов ставились только те, которые подходят по маске. Так что тогда твои двеллинги с другими размерами ставиться не будут. Уже был баг где из-за таких жилищ (большие логова элементалей) блокировался проход на карте.
Во-первых они уж никак на троечных картах не появятся.
Во-вторых за вычетом сложных объектов (города, герои и магический фонтан) от маски объекта ничего не требуется - там пройдет что угодно.
anon, это, кажется, что-то специфичное для Qt. Бага проявляется только с лаунчером, клиент/сервер работают нормально. Если бы это была проблема с либами студии, то клиент/сервер тоже не работали бы.
Povelitel, спроси у него наверно. Он сборку выкладывал, но там не хватало нескольких файлов. Если он ее обновит и добавит эти файлы - то, по идее, должно работать.