Make sure file is reloaded on opening cheat config

This commit is contained in:
zilmar 2021-02-24 21:25:35 +10:30
parent 155d331d45
commit 9262e37c47
5 changed files with 32 additions and 7 deletions

View File

@ -165,10 +165,6 @@ void CEnhancmentFile::OpenFile(void)
bool CEnhancmentFile::MoveToSection(const char * Section, bool ChangeCurrentSection)
{
if (strcmp(Section, m_CurrentSection.c_str()) == 0)
{
return true;
}
if (ChangeCurrentSection)
{
SaveCurrentSection();

View File

@ -240,6 +240,7 @@ void CEnhancements::LoadEnhancements(const char * Ident, SectionFiles & Files, s
{
File = std::make_unique<CEnhancmentFile>(CheatFile, Ident);
}
EnhancementList.clear();
File->GetEnhancementList(SectionIdent.c_str(), EnhancementList);
FoundFile = true;
}
@ -265,6 +266,26 @@ void CEnhancements::Load(CMipsMemoryVM * MMU, CPlugins * Plugins)
LoadActive(m_Enhancements, Plugins);
}
CEnhancementList CEnhancements::Cheats(void)
{
CEnhancementList List;
{
CGuard Guard(m_CS);
List = m_Cheats;
}
return List;
}
CEnhancementList CEnhancements::Enhancements(void)
{
CEnhancementList List;
{
CGuard Guard(m_CS);
List = m_Enhancements;
}
return List;
}
void CEnhancements::LoadActive(CEnhancementList & List, CPlugins * Plugins)
{
for (CEnhancementList::const_iterator itr = List.begin(); itr != List.end(); itr++)

View File

@ -38,8 +38,8 @@ public:
void ResetActive(CPlugins * Plugins);
void Load(CMipsMemoryVM * MMU, CPlugins * Plugins);
inline const CEnhancementList & Cheats(void) const { return m_Cheats; }
inline const CEnhancementList & Enhancements(void) const { return m_Enhancements; }
CEnhancementList Cheats(void);
CEnhancementList Enhancements(void);
private:
struct GAMESHARK_CODE

View File

@ -492,6 +492,10 @@ void CCheatList::ChangeChildrenStatus(HTREEITEM hParent, bool Checked)
TV_SetCheckState(hParent, Checked ? TV_STATE_CHECKED : TV_STATE_CLEAR);
Enhancement->SetActive(Checked);
if (g_Enhancements != nullptr)
{
g_Enhancements->UpdateCheats();
}
return;
}
TV_CHECK_STATE state = TV_STATE_UNKNOWN;

View File

@ -305,7 +305,7 @@ LRESULT CEnhancementUI::OnEnhancementListDClicked(NMHDR * lpnmh)
return 0;
}
LRESULT CEnhancementUI::OnEnhancementListSelChanged(NMHDR * lpnmh)
LRESULT CEnhancementUI::OnEnhancementListSelChanged(NMHDR * /*lpnmh*/)
{
HTREEITEM hItem = m_TreeList.GetSelectedItem();
GetDlgItem(IDC_NOTES).SetWindowText(L"");
@ -394,6 +394,10 @@ void CEnhancementUI::ChangeChildrenStatus(HTREEITEM hParent, bool Checked)
TV_SetCheckState(hParent, Checked ? TV_STATE_CHECKED : TV_STATE_CLEAR);
Enhancement->SetActive(Checked);
if (g_Enhancements != nullptr)
{
g_Enhancements->UpdateCheats();
}
return;
}
TV_CHECK_STATE state = TV_STATE_UNKNOWN;