Further work on support for cheats

Cheats can now be enabled/disabled and games can be launched with cheats
This commit is contained in:
Gericom
2026-02-28 17:00:02 +01:00
parent dddee0bb94
commit f54a379ff2
27 changed files with 660 additions and 171 deletions

View File

@@ -1,13 +1,14 @@
#pragma once
#include "Cheat.h"
#include "CheatCategory.h"
#include "ICheatCategory.h"
class GameCheats
class GameCheats : public ICheatCategory
{
public:
GameCheats(std::unique_ptr<u8[]> cheatData, const char* gameName,
GameCheats(std::unique_ptr<u8[]> cheatData, u32 cheatDataLength, u32 fileOffset, const char* gameName,
CheatCategory* categories, u32 numberOfCategories, Cheat* cheats, u32 numberOfCheats)
: _cheatData(std::move(cheatData)), _gameName(gameName)
: _cheatData(std::move(cheatData)), _cheatDataLength(cheatDataLength), _fileOffset(fileOffset), _gameName(gameName)
, _categories(categories), _numberOfCategories(numberOfCategories)
, _cheats(cheats), _numberOfCheats(numberOfCheats) { }
@@ -28,20 +29,38 @@ public:
return _gameName;
}
const CheatCategory* GetCheatCategories(u32& numberOfCategories) const
bool GetIsMaxOneCheatActive() const override
{
return false;
}
const CheatCategory* GetCategories(u32& numberOfCategories) const override
{
numberOfCategories = _numberOfCategories;
return _categories;
}
const Cheat* GetCheats(u32& numberOfCheats) const
const Cheat* GetCheats(u32& numberOfCheats) const override
{
numberOfCheats = _numberOfCheats;
return _cheats;
}
u8* GetCheatData(u32& cheatDataLength) const
{
cheatDataLength = _cheatDataLength;
return _cheatData.get();
}
u32 GetFileOffset() const
{
return _fileOffset;
}
private:
std::unique_ptr<u8[]> _cheatData;
u32 _cheatDataLength;
u32 _fileOffset;
const char* _gameName;
CheatCategory* _categories;
u32 _numberOfCategories;