1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef LEGACYAPP_H
- #define LEGACYAPP_H
- #include <QObject>
- #include <QSettings>
- #include <QApplication>
- #include <QVector>
- #include <QVariant>
- #include "models/downloader.h"
- #include <LotroDat/datfile.h>
- #include <LotroDat/database.h>
- class PatchInstaller : public QObject
- {
- Q_OBJECT
- public:
- struct Status {
- size_t total_parts = 0;
- size_t finished_parts = 0;
- };
- public:
- static PatchInstaller& instance() {
- static PatchInstaller instance_;
- return instance_;
- }
- bool initialised();
- ~PatchInstaller();
- // TODO: bool NotPatched();
- private:
- enum RESOURCE_FILE_TYPE : int {
- E_CLIENT_LOCAL = 0,
- E_CLIENT_GENERAL = 1
- };
- explicit PatchInstaller(QObject *parent = nullptr);
- bool datPathIsRelevant();
- void deinit();
- void installPatch(QString patch_name, LOTRO_DAT::Database* database);
- void installLoadscreens(LOTRO_DAT::Database* database);
- void installVideos(LOTRO_DAT::Database* database);
- public slots:
- void init();
- void startGame(bool freeze_updates);
- void startPatchInstallationChain();
- private slots:
- void onDownloaderProgressChanged(Downloader* context, Downloader::Status progress);
- signals:
- void started();
- void progressChanged(PatchInstaller::Status status);
- void videosDownloadProgressChanged(int finished_videos, int total_videos, Downloader::Status status);
- void finished();
- private:
- LOTRO_DAT::DatFile* client_local_file_;
- LOTRO_DAT::DatFile* client_general_file_;
- Status current_status;
- int download_video_finished_videos = 0;
- int download_video_total_videos = 0;
- };
- Q_DECLARE_METATYPE(PatchInstaller::Status)
- #endif // LEGACYAPP_H
|