1
0
Fork 0
mirror of https://github.com/HamletDuFromage/aio-switch-updater.git synced 2024-11-08 19:41:49 +00:00
AIO-switch-updater/include/download_cheats_page.hpp

98 lines
2.6 KiB
C++
Raw Normal View History

2021-09-11 14:48:13 +01:00
#pragma once
#include <switch.h>
2021-09-11 14:48:13 +01:00
#include <borealis.hpp>
#include <filesystem>
2021-09-11 14:48:13 +01:00
#include <json.hpp>
#include "constants.hpp"
2022-05-16 14:39:50 +01:00
namespace cheats_util {
u32 GetVersion(uint64_t title_id);
void ShowCheatFiles(uint64_t tid, const std::string& name);
void ShowCheatSheet(u64 tid, const std::string& bid, const std::string& name);
bool CreateCheatList(const std::filesystem::path& path, brls::List** cheatsList);
void DeleteCheats(u64 tid, const std::string& bid);
2022-05-16 14:39:50 +01:00
} // namespace cheats_util
class DownloadCheatsPage : public brls::AppletFrame
{
2021-09-11 14:48:13 +01:00
protected:
brls::List* list;
brls::Label* label;
brls::ListItem* del;
uint64_t tid = 0;
std::string bid = "";
2021-10-26 14:48:24 +01:00
std::string name;
2021-09-11 14:48:13 +01:00
u32 version = 0;
2021-09-11 14:48:13 +01:00
DownloadCheatsPage(uint64_t tid, const std::string& name);
void GetBuildID();
void GetBuildIDFromDmnt();
void GetBuildIDFromFile();
void WriteCheats(const std::string& cheatContent);
2021-10-26 14:48:24 +01:00
void AddCheatsfileListItem();
2022-02-20 15:33:54 +00:00
void ShowBidNotFound();
void ShowCheatsNotFound(const std::string& versionsWithCheats = "");
2021-02-10 17:41:13 +00:00
2021-09-11 14:48:13 +01:00
typedef struct
{
u64 base;
u64 size;
} DmntMemoryRegionExtents;
2021-02-10 17:41:13 +00:00
2021-09-11 14:48:13 +01:00
typedef struct
{
u64 process_id;
u64 title_id;
DmntMemoryRegionExtents main_nso_extents;
DmntMemoryRegionExtents heap_extents;
DmntMemoryRegionExtents alias_extents;
DmntMemoryRegionExtents address_space_extents;
u8 main_nso_build_id[0x20];
} DmntCheatProcessMetadata;
};
2021-09-11 14:48:13 +01:00
class DownloadCheatsPage_CheatSlips : public DownloadCheatsPage
{
private:
brls::ToggleListItem* listItem;
std::vector<std::pair<brls::ToggleListItem*, int>> toggles;
std::string GetCheatsTitle(nlohmann::ordered_json cheat);
2021-09-11 14:48:13 +01:00
void ShowCheatsContent(nlohmann::ordered_json titles);
2021-09-11 14:48:13 +01:00
public:
DownloadCheatsPage_CheatSlips(uint64_t tid, const std::string& name);
};
class DownloadCheatsPage_Github : public DownloadCheatsPage
2021-09-11 14:48:13 +01:00
{
private:
brls::ListItem* listItem;
2021-09-11 14:48:13 +01:00
public:
DownloadCheatsPage_Github(uint64_t tid, const std::string& name);
void PopulateList(uint64_t tid, const std::string& name);
protected:
virtual std::string get_url() { return CHEATS_DIRECTORY; }
};
class DownloadCheatsPage_Gbatemp : public DownloadCheatsPage_Github
{
public:
DownloadCheatsPage_Gbatemp(uint64_t tid, const std::string& name);
private:
std::string get_url() override { return CHEATS_DIRECTORY_GBATEMP; }
};
class DownloadCheatsPage_Gfx : public DownloadCheatsPage_Github
{
public:
DownloadCheatsPage_Gfx(uint64_t tid, const std::string& name);
private:
std::string get_url() override { return CHEATS_DIRECTORY_GFX; }
};