mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-04-28 20:45:41 -04:00
CheatList: Add merge list function for importing
This commit is contained in:
parent
576914cd2c
commit
6828082f8b
@ -529,6 +529,37 @@ void CheatList::ApplyCode(u32 index)
|
|||||||
m_codes[index].Apply();
|
m_codes[index].Apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CheatCode* CheatList::FindCode(const char* name) const
|
||||||
|
{
|
||||||
|
for (const CheatCode& cc : m_codes)
|
||||||
|
{
|
||||||
|
if (cc.description == name)
|
||||||
|
return &cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const CheatCode* CheatList::FindCode(const char* group, const char* name) const
|
||||||
|
{
|
||||||
|
for (const CheatCode& cc : m_codes)
|
||||||
|
{
|
||||||
|
if (cc.group == group && cc.description == name)
|
||||||
|
return &cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheatList::MergeList(const CheatList& cl)
|
||||||
|
{
|
||||||
|
for (const CheatCode& cc : cl.m_codes)
|
||||||
|
{
|
||||||
|
if (!FindCode(cc.group.c_str(), cc.description.c_str()))
|
||||||
|
AddCode(cc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string CheatCode::GetInstructionsAsString() const
|
std::string CheatCode::GetInstructionsAsString() const
|
||||||
{
|
{
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
|
@ -102,6 +102,9 @@ public:
|
|||||||
ALWAYS_INLINE u32 GetCodeCount() const { return static_cast<u32>(m_codes.size()); }
|
ALWAYS_INLINE u32 GetCodeCount() const { return static_cast<u32>(m_codes.size()); }
|
||||||
ALWAYS_INLINE bool IsCodeEnabled(u32 index) const { return m_codes[index].enabled; }
|
ALWAYS_INLINE bool IsCodeEnabled(u32 index) const { return m_codes[index].enabled; }
|
||||||
|
|
||||||
|
const CheatCode* FindCode(const char* name) const;
|
||||||
|
const CheatCode* FindCode(const char* group, const char* name) const;
|
||||||
|
|
||||||
void AddCode(CheatCode cc);
|
void AddCode(CheatCode cc);
|
||||||
void SetCode(u32 index, CheatCode cc);
|
void SetCode(u32 index, CheatCode cc);
|
||||||
void RemoveCode(u32 i);
|
void RemoveCode(u32 i);
|
||||||
@ -125,6 +128,8 @@ public:
|
|||||||
|
|
||||||
void ApplyCode(u32 index);
|
void ApplyCode(u32 index);
|
||||||
|
|
||||||
|
void MergeList(const CheatList& cl);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<CheatCode> m_codes;
|
std::vector<CheatCode> m_codes;
|
||||||
};
|
};
|
||||||
|
@ -558,10 +558,7 @@ void CheatManagerDialog::importClicked()
|
|||||||
QtHostInterface::GetInstance()->executeOnEmulationThread(
|
QtHostInterface::GetInstance()->executeOnEmulationThread(
|
||||||
[&new_cheats]() {
|
[&new_cheats]() {
|
||||||
DebugAssert(System::HasCheatList());
|
DebugAssert(System::HasCheatList());
|
||||||
CheatList* list = System::GetCheatList();
|
System::GetCheatList()->MergeList(new_cheats);
|
||||||
for (u32 i = 0; i < new_cheats.GetCodeCount(); i++)
|
|
||||||
list->AddCode(new_cheats.GetCode(i));
|
|
||||||
|
|
||||||
QtHostInterface::GetInstance()->SaveCheatList();
|
QtHostInterface::GetInstance()->SaveCheatList();
|
||||||
},
|
},
|
||||||
true);
|
true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user