patchinstaller.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef LEGACYAPP_H
  2. #define LEGACYAPP_H
  3. #include <QObject>
  4. #include <QSettings>
  5. #include <QApplication>
  6. #include <QVector>
  7. #include <QVariant>
  8. #include <LotroDat/datfile.h>
  9. #include <LotroDat/database.h>
  10. class PatchInstaller : public QObject
  11. {
  12. Q_OBJECT
  13. public:
  14. struct Status {
  15. };
  16. public:
  17. static PatchInstaller& instance() {
  18. static PatchInstaller instance_;
  19. return instance_;
  20. }
  21. bool initialised();
  22. ~PatchInstaller();
  23. // TODO: bool NotPatched();
  24. private:
  25. enum Category : int {
  26. E_TEXTS_COMMON = 100,
  27. E_TEXTS_ITEMS = 101,
  28. E_TEXTS_EMOTES = 102,
  29. E_TEXTS_VIDEOS_REFS = 103,
  30. E_MAPS_COMMON = 200,
  31. E_TEXTURES_COMMON = 201,
  32. E_AUDIOS_COMMON = 300,
  33. E_FONTS_COMMON = 400
  34. };
  35. enum RESOURCE_FILE_TYPE : int {
  36. E_CLIENT_LOCAL = 0,
  37. E_CLIENT_GENERAL = 1
  38. };
  39. explicit PatchInstaller(QObject *parent = nullptr);
  40. bool datPathIsRelevant();
  41. void deinit();
  42. void installPatch(QString patch_name, QString database_path, RESOURCE_FILE_TYPE dat_file);
  43. public slots:
  44. void init();
  45. void startGame(bool freeze_updates);
  46. signals:
  47. void operationStarted(QString operation_name, QVector<QVariant> args = {});
  48. void errorOccured(QString operation_name, QVector<QVariant> args = {}, QString message = "No error message provided");
  49. void operationFinished(QString operation_name, QVector<QVariant> args = {}, bool successful = true);
  50. void statusChanged(Status status);
  51. private:
  52. LOTRO_DAT::DatFile* client_local_file_;
  53. LOTRO_DAT::DatFile* client_general_file_;
  54. };
  55. #endif // LEGACYAPP_H