|
@@ -18,7 +18,7 @@ QString Helper::fileHash(const QString &fileName, QCryptographicHash::Algorithm
|
|
|
int Helper::getVersion(QString string) {
|
|
|
std::string str(string.toLatin1().data());
|
|
|
int version = 0;
|
|
|
- for (int i = str.find("_v") + 2; i < str.find("_v") + 7; i += 2) {
|
|
|
+ for (unsigned i = str.find("_v") + 2; i < str.find("_v") + 7; i += 2) {
|
|
|
version = version * 10 + (str[i] - '0');
|
|
|
}
|
|
|
return version;
|
|
@@ -406,7 +406,13 @@ void Helper::applyLoadscreens(){
|
|
|
}
|
|
|
|
|
|
QString lang = app->config->getValue("Local", "lang");
|
|
|
- QString folder = app->config->getValue("Local", "folder") + "/raw/" + lang + "/logo/";
|
|
|
+
|
|
|
+ if (lang == "-1") {
|
|
|
+ app->config->setValue("Local", "lang", "en");
|
|
|
+ lang = "en";
|
|
|
+ }
|
|
|
+
|
|
|
+ QString folder = app->config->getValue("Local", "folder") + "raw/" + lang + "/logo/";
|
|
|
SubfileData subfile;
|
|
|
QStringList filenames;
|
|
|
QString mainscreen = lang == "en" ? "lotro_ad_pregame.jpg" : "lotro_ad_pregame_" + lang + ".jpg";
|
|
@@ -578,7 +584,7 @@ void Helper::applyPatch(QString name){
|
|
|
qInfo("%s:%i: %s%d", __FILE__, __LINE__, "Файлов в обновлении: ", indb);
|
|
|
for(int i = 0; i<=indb; i++){
|
|
|
processFile();
|
|
|
- if(label != nullptr) label->setText("Применение ... " + QString::fromLatin1("%1").arg(i*100/indb, 3, 'f', 1) + "%");
|
|
|
+ if (label != nullptr) label->setText("Применение ... " + QString::fromLatin1("%1").arg(i*100/indb, 3, 'f', 1) + "%");
|
|
|
}
|
|
|
if(label != nullptr)label->setText("Готово");
|
|
|
//for (int i = 0; i < 5; i++) app->datfiles[i].CommitChanges();
|
|
@@ -625,16 +631,22 @@ void Helper::applyGlobal(){
|
|
|
names << "fonts" << "sounds" << "texts" << "images" << "videos" << "textures";
|
|
|
QDir dir(QApplication::applicationDirPath() + "/data");
|
|
|
|
|
|
- foreach(QString name, names){
|
|
|
+ foreach(QString name, names) {
|
|
|
+
|
|
|
QStringList list = dir.entryList(QStringList(name + "*"));
|
|
|
- if(list.size() > 0 && list.first() != ""){
|
|
|
+
|
|
|
+ if (list.size() > 0 && list.first() != ""){
|
|
|
QString isset = app->config->getValue("Applied", name);
|
|
|
- if(list.first() != isset && app->config->getValue("Editor", name) == "true"){ need.append(name); }
|
|
|
+ if (list.first() != isset && app->config->getValue("Editor", name) == "true") {
|
|
|
+ need.append(name);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
Helper *helper = new Helper();
|
|
|
QFutureWatcher<void> * watcher = new QFutureWatcher<void>();
|
|
|
connect(watcher, SIGNAL(finished()), helper, SLOT(handleFinisheddd()));
|
|
|
+
|
|
|
if(need.size() > 0){
|
|
|
watcher->setFuture(QtConcurrent::run([=]() {
|
|
|
if(app->helper->openDatFile(0)){
|
|
@@ -717,7 +729,7 @@ void Helper::replaceSkin(QString name){
|
|
|
movie->start();
|
|
|
}
|
|
|
|
|
|
-void Helper::checkDatFile(){
|
|
|
+int Helper::checkDatFile(){
|
|
|
//bool CheckIfUpdatedByGame(); // Обновлялся ли игрой
|
|
|
//bool CheckIfNotPatched(); // Был ли хоть раз пропатчен новым лаунчером
|
|
|
//bool CheckIfPatchedByOldLauncher(); // Был ли хоть раз пропатчен старым лаунчером
|
|
@@ -725,24 +737,28 @@ void Helper::checkDatFile(){
|
|
|
App *app = &App::getInstance();
|
|
|
app->helper->openDatFile(0);
|
|
|
if(app->datfiles[0].CheckIfUpdatedByGame()){
|
|
|
- app->ready = false;
|
|
|
- QString text = "Файлы локализации изменены";
|
|
|
- QString info = "В процессе последнего запуска игры были установлены обновления игрового клиента. Это могло затронуть файлы локализации. Желаете провести проверку и исправить поврежденные участки перевода? Вы можете в любой момент сделать это самостоятельно, нажав кнопку «Применить патчи заново».";
|
|
|
- app->helper->myDialogBox(text, info, "OK", "Отмена", "gandalf.png", "applypaths", "", 400, 220, true, true);
|
|
|
+ return 1;
|
|
|
+ //app->ready = false;
|
|
|
+ //QString text = "Файлы локализации изменены";
|
|
|
+ //QString info = "В процессе последнего запуска игры были установлены обновления игрового клиента. Это могло затронуть файлы локализации. Желаете провести проверку и исправить поврежденные участки перевода? Вы можете в любой момент сделать это самостоятельно, нажав кнопку «Применить патчи заново».";
|
|
|
+ //app->helper->myDialogBox(text, info, "OK", "Отмена", "gandalf.png", "applypaths", "", 400, 220, true, true);
|
|
|
}
|
|
|
|
|
|
if(app->datfiles[0].CheckIfNotPatched() && app->config->getValue("Local", "runfirst") == "1"){
|
|
|
- app->ready = false;
|
|
|
- QString text = "Файлы локализации отсутствуют";
|
|
|
- QString info = "Текущий файл локализации не содержит патчей. Возможно это первый запуск «Наследия» с данным игровым клиентом, или клиент был обновлён игровым лаунчером. Применить выбранные патчи в данному файлу?";
|
|
|
- app->helper->myDialogBox(text, info, "OK", "Отмена", "gandalf.png", "applypaths", "", 420, 200, true, true);
|
|
|
+ return 2;
|
|
|
+ //app->ready = false;
|
|
|
+ //QString text = "Файлы локализации отсутствуют";
|
|
|
+ //QString info = "Текущий файл локализации не содержит патчей. Возможно это первый запуск «Наследия» с данным игровым клиентом, или клиент был обновлён игровым лаунчером. Применить выбранные патчи в данному файлу?";
|
|
|
+ //app->helper->myDialogBox(text, info, "OK", "Отмена", "gandalf.png", "applypaths", "", 420, 200, true, true);
|
|
|
}
|
|
|
|
|
|
if(app->datfiles[0].CheckIfPatchedByOldLauncher()){
|
|
|
- QString text = "Файлы локализации не являются оригинальными";
|
|
|
- QString info = "Внимание! Присутствующие в вашем игровом клиенте файлы локализации не являются оригинальными, поскольку были модифицированы другой программой.<br/><strong>Мы настоятельно рекомендуем перекачать оригинальные версии файлов, поскольку правильная работа Наследия с данными файлами не гарантируется!</strong>";
|
|
|
- app->helper->myDialogBox(text, info, "Перекачать", "Не надо", "gandalf.png", "loaddatfile", "", 550, 200, true, true);
|
|
|
+ return 3;
|
|
|
+ //QString text = "Файлы локализации не являются оригинальными";
|
|
|
+ //QString info = "Внимание! Присутствующие в вашем игровом клиенте файлы локализации не являются оригинальными, поскольку были модифицированы другой программой.<br/><strong>Мы настоятельно рекомендуем перекачать оригинальные версии файлов, поскольку правильная работа Наследия с данными файлами не гарантируется!</strong>";
|
|
|
+ //app->helper->myDialogBox(text, info, "Перекачать", "Не надо", "gandalf.png", "loaddatfile", "", 550, 200, true, true);
|
|
|
}
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
void Helper::clearFolder(QDir &dir){
|