#pragma once #include #include "fat/File.h" #include "ICheatRepository.h" #include "UsrCheatDat.h" class UsrCheatRepository : public ICheatRepository { public: UsrCheatRepository(std::unique_ptr usrCheatDatFile, std::unique_ptr sortedIndices, u32 numberOfIndices) : _usrCheatFile(std::move(usrCheatDatFile)) , _sortedIndices(std::move(sortedIndices)), _numberOfIndices(numberOfIndices) { } std::unique_ptr GetCheatsForGame(u32 gameCode, u32 headerCrc32) const override; private: std::unique_ptr _usrCheatFile; std::unique_ptr _sortedIndices; u32 _numberOfIndices; const usr_cheat_index_entry_t* FindIndex(u32 gameCode, u32 headerCrc32) const; void ParseCategory(CheatCategory& category, u8*& ptr) const; void ParseCheat(Cheat& cheat, u8*& ptr) const; };