#pragma once #include #include "core/task/TaskQueue.h" #include "cheats/GameCheats.h" #include "romBrowser/FileInfo.h" #include "romBrowser/IRomBrowserController.h" /// @brief View model for the cheats screen. class CheatsViewModel { public: enum class State { Loading, NoCheats, DisplayCheats }; CheatsViewModel(const FileInfo& romFileInfo, IRomBrowserController* romBrowserController); void Close() { _romBrowserController->HideGameInfo(); } State GetState() const { return _state; } const GameCheats* GetCheats() const { return _cheats.get(); } private: FileInfo _romFileInfo; IRomBrowserController* _romBrowserController; QueueTask _loadCheatsTask; std::unique_ptr _cheats; State _state = State::Loading; };