mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 05:05:46 -04:00
FrontendCommon: Add auto cheat loading option
This commit is contained in:
@ -324,6 +324,44 @@ bool CheatList::SaveToPCSXRFile(const char* filename)
|
||||
return (std::ferror(fp.get()) == 0);
|
||||
}
|
||||
|
||||
u32 CheatList::GetEnabledCodeCount() const
|
||||
{
|
||||
u32 count = 0;
|
||||
for (const CheatCode& cc : m_codes)
|
||||
{
|
||||
if (cc.enabled)
|
||||
count++;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
void CheatList::SetCodeEnabled(u32 index, bool state)
|
||||
{
|
||||
if (index >= m_codes.size())
|
||||
return;
|
||||
|
||||
m_codes[index].enabled = state;
|
||||
}
|
||||
|
||||
void CheatList::EnableCode(u32 index)
|
||||
{
|
||||
SetCodeEnabled(index, true);
|
||||
}
|
||||
|
||||
void CheatList::DisableCode(u32 index)
|
||||
{
|
||||
SetCodeEnabled(index, false);
|
||||
}
|
||||
|
||||
void CheatList::ApplyCode(u32 index)
|
||||
{
|
||||
if (index >= m_codes.size())
|
||||
return;
|
||||
|
||||
m_codes[index].Apply();
|
||||
}
|
||||
|
||||
void CheatCode::Apply() const
|
||||
{
|
||||
const u32 count = static_cast<u32>(instructions.size());
|
||||
|
@ -68,10 +68,16 @@ public:
|
||||
ALWAYS_INLINE const CheatCode& GetCode(u32 i) const { return m_codes[i]; }
|
||||
ALWAYS_INLINE CheatCode& GetCode(u32 i) { return m_codes[i]; }
|
||||
ALWAYS_INLINE u32 GetCodeCount() const { return static_cast<u32>(m_codes.size()); }
|
||||
ALWAYS_INLINE bool IsCodeEnabled(u32 index) const { return m_codes[index].enabled; }
|
||||
|
||||
void AddCode(CheatCode cc);
|
||||
void RemoveCode(u32 i);
|
||||
|
||||
u32 GetEnabledCodeCount() const;
|
||||
void EnableCode(u32 index);
|
||||
void DisableCode(u32 index);
|
||||
void SetCodeEnabled(u32 index, bool state);
|
||||
|
||||
static std::optional<Format> DetectFileFormat(const char* filename);
|
||||
|
||||
bool LoadFromFile(const char* filename, Format format);
|
||||
@ -82,6 +88,8 @@ public:
|
||||
|
||||
void Apply();
|
||||
|
||||
void ApplyCode(u32 index);
|
||||
|
||||
private:
|
||||
std::vector<CheatCode> m_codes;
|
||||
};
|
||||
|
@ -86,6 +86,7 @@ void Settings::Load(SettingsInterface& si)
|
||||
confim_power_off = si.GetBoolValue("Main", "ConfirmPowerOff", true);
|
||||
load_devices_from_save_states = si.GetBoolValue("Main", "LoadDevicesFromSaveStates", false);
|
||||
apply_game_settings = si.GetBoolValue("Main", "ApplyGameSettings", true);
|
||||
auto_load_cheats = si.GetBoolValue("Main", "AutoLoadCheats", false);
|
||||
|
||||
cpu_execution_mode =
|
||||
ParseCPUExecutionMode(
|
||||
@ -204,6 +205,7 @@ void Settings::Save(SettingsInterface& si) const
|
||||
si.SetBoolValue("Main", "ConfirmPowerOff", confim_power_off);
|
||||
si.SetBoolValue("Main", "LoadDevicesFromSaveStates", load_devices_from_save_states);
|
||||
si.SetBoolValue("Main", "ApplyGameSettings", apply_game_settings);
|
||||
si.SetBoolValue("Main", "AutoLoadCheats", auto_load_cheats);
|
||||
|
||||
si.SetStringValue("CPU", "ExecutionMode", GetCPUExecutionModeName(cpu_execution_mode));
|
||||
si.SetBoolValue("CPU", "RecompilerMemoryExceptions", cpu_recompiler_memory_exceptions);
|
||||
|
@ -80,6 +80,7 @@ struct Settings
|
||||
bool confim_power_off = true;
|
||||
bool load_devices_from_save_states = false;
|
||||
bool apply_game_settings = true;
|
||||
bool auto_load_cheats = false;
|
||||
|
||||
GPURenderer gpu_renderer = GPURenderer::Software;
|
||||
std::string gpu_adapter;
|
||||
|
@ -757,6 +757,7 @@ void Shutdown()
|
||||
s_running_game_title.clear();
|
||||
s_media_playlist.clear();
|
||||
s_media_playlist_filename.clear();
|
||||
s_cheat_list.reset();
|
||||
s_state = State::Shutdown;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user