1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-21 20:27:45 +00:00
astra/launcher/core/include/patcher.h

43 lines
936 B
C
Raw Normal View History

#pragma once
#include <QNetworkAccessManager>
2022-08-15 11:14:37 -04:00
#include <QProgressDialog>
#include <QString>
2022-08-09 22:44:10 -04:00
#include <physis.hpp>
// General-purpose patcher routine. It opens a nice dialog box, handles downloading
// and processing patches.
class Patcher : public QObject {
Q_OBJECT
public:
2022-08-09 22:44:10 -04:00
Patcher(QString baseDirectory, GameData* game_data);
Patcher(QString baseDirectory, BootData* game_data);
void processPatchList(QNetworkAccessManager& mgr, QString patchList);
signals:
void done();
private:
void checkIfDone();
2022-08-09 22:44:10 -04:00
bool isBoot() const {
return boot_data != nullptr;
}
struct QueuedPatch {
QString name, repository, version, path;
};
void processPatch(QueuedPatch patch);
QVector<QueuedPatch> patchQueue;
QString baseDirectory;
2022-08-09 22:44:10 -04:00
BootData* boot_data = nullptr;
GameData* game_data = nullptr;
QProgressDialog* dialog = nullptr;
int remainingPatches = -1;
};