Add Gecko Code Whitelist Approval

This commit is contained in:
LillyJadeKatrin
2024-07-25 08:39:24 -04:00
parent 78f3448e27
commit 13a1956cfa
7 changed files with 61 additions and 9 deletions

View File

@@ -15,6 +15,7 @@
#include "Common/Config/Config.h"
#include "Common/FileUtil.h"
#include "Core/AchievementManager.h"
#include "Core/Config/MainSettings.h"
#include "Core/Core.h"
#include "Core/Host.h"
@@ -49,7 +50,7 @@ static std::vector<GeckoCode> s_active_codes;
static std::vector<GeckoCode> s_synced_codes;
static std::mutex s_active_codes_lock;
void SetActiveCodes(std::span<const GeckoCode> gcodes)
void SetActiveCodes(std::span<const GeckoCode> gcodes, const std::string& game_id)
{
std::lock_guard lk(s_active_codes_lock);
@@ -57,8 +58,12 @@ void SetActiveCodes(std::span<const GeckoCode> gcodes)
if (Config::AreCheatsEnabled())
{
s_active_codes.reserve(gcodes.size());
std::copy_if(gcodes.begin(), gcodes.end(), std::back_inserter(s_active_codes),
[](const GeckoCode& code) { return code.enabled; });
[&game_id](const GeckoCode& code) {
return code.enabled &&
AchievementManager::GetInstance().CheckApprovedGeckoCode(code, game_id);
});
}
s_active_codes.shrink_to_fit();