From 3c522a0e6084c48edca6be41b5db12c038a926ba Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Tue, 5 Oct 2021 11:58:34 +1000 Subject: [PATCH] Config: Add missing equality comparisons for a few fields Fixes memory card changes not getting applied. --- pcsx2/Config.h | 24 +++++++++++------------- pcsx2/Pcsx2Config.cpp | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/pcsx2/Config.h b/pcsx2/Config.h index 31c40f3642..140aba5eeb 100644 --- a/pcsx2/Config.h +++ b/pcsx2/Config.h @@ -490,6 +490,16 @@ struct Pcsx2Config void LoadSave(SettingsWrapper& wrap); void SanityCheck(); + + bool operator==(const FramerateOptions& right) const + { + return OpEqu(SkipOnLimit) && OpEqu(SkipOnTurbo) && OpEqu(NominalScalar) && OpEqu(TurboScalar) && OpEqu(SlomoScalar); + } + + bool operator!=(const FramerateOptions& right) const + { + return !this->operator==(right); + } }; // ------------------------------------------------------------------------ @@ -586,19 +596,7 @@ struct Pcsx2Config bool MultitapEnabled( uint port ) const; - bool operator ==( const Pcsx2Config& right ) const - { - return - OpEqu( bitset ) && - OpEqu( Cpu ) && - OpEqu( GS ) && - OpEqu( Speedhacks ) && - OpEqu( Gamefixes ) && - OpEqu( Profiler ) && - OpEqu( Trace ) && - OpEqu( BaseFilenames ); - } - + bool operator ==(const Pcsx2Config& right) const; bool operator !=( const Pcsx2Config& right ) const { return !this->operator ==( right ); diff --git a/pcsx2/Pcsx2Config.cpp b/pcsx2/Pcsx2Config.cpp index 7bd305245d..8ff5bae339 100644 --- a/pcsx2/Pcsx2Config.cpp +++ b/pcsx2/Pcsx2Config.cpp @@ -610,6 +610,29 @@ wxString Pcsx2Config::FullpathToMcd(uint slot) const return Path::Combine(EmuFolders::MemoryCards, StringUtil::UTF8StringToWxString(Mcd[slot].Filename)); } +bool Pcsx2Config::operator==(const Pcsx2Config& right) const +{ + bool equal = + OpEqu(bitset) && + OpEqu(Cpu) && + OpEqu(GS) && + OpEqu(Speedhacks) && + OpEqu(Gamefixes) && + OpEqu(Profiler) && + OpEqu(Debugger) && + OpEqu(Framerate) && + OpEqu(Trace) && + OpEqu(BaseFilenames) && + OpEqu(GzipIsoIndexTemplate); + for (u32 i = 0; i < sizeof(Mcd) / sizeof(Mcd[0]); i++) + { + equal &= OpEqu(Mcd[i].Enabled); + equal &= OpEqu(Mcd[i].Filename); + } + + return equal; +} + void Pcsx2Config::CopyConfig(const Pcsx2Config& cfg) { Cpu = cfg.Cpu;