Files
pico-launcher/arm9/source/cheats/ICheatCategory.h

33 lines
1.2 KiB
C++

#pragma once
class CheatCategory;
class Cheat;
/// @brief Interface for a collection of cheats.
class ICheatCategory
{
public:
virtual ~ICheatCategory() = default;
/// @brief Gets the name of this category.
/// @return The name of this category.
virtual const char* GetName() const = 0;
/// @brief Indicates if only one cheat in this category is allowed to be on or not.
/// @return \c true when only one cheat is allowed to be active in this category, or \c false otherwise.
virtual bool GetIsMaxOneCheatActive() const = 0;
/// @brief Gets the sub-categories of this category.
/// @param numberOfCategories The number of categories is returned through this reference.
/// @return A pointer to an array of categories. This may be \c nullptr when \p numberOfCategories is 0.
virtual const CheatCategory* GetCategories(u32& numberOfCategories) const;
/// @brief Gets the cheats in this category.
/// @param numberOfCheats The number of cheats is returned through this reference.
/// @return A pointer to an array of cheats. This may be \c nullptr when \p numberOfCheats is 0.
virtual const Cheat* GetCheats(u32& numberOfCheats) const;
protected:
ICheatCategory() = default;
};