Always register the cheat event, for savestates.

This way, if you savestate with cheats on or off, it'll load fine.
This commit is contained in:
Unknown W. Brackets 2013-10-07 07:46:18 -07:00
parent 07cf92b3a9
commit 0c8cc25eb4
3 changed files with 17 additions and 1 deletions

View File

@ -23,6 +23,8 @@ void __CheatInit() {
activeCheatFile = CHEATS_DIR + "/" + gameTitle + ".ini";
#endif
CheatEvent = CoreTiming::RegisterEvent("CheatEvent", &hleCheat);
File::CreateFullPath(CHEATS_DIR);
if (g_Config.bEnableCheats) {
if (!File::Exists(activeCheatFile)) {
@ -33,7 +35,6 @@ void __CheatInit() {
cheatEngine->CreateCodeList();
g_Config.bReloadCheats = false;
CheatEvent = CoreTiming::RegisterEvent("CheatEvent", &hleCheat);
CoreTiming::ScheduleEvent(msToCycles(77), CheatEvent, 0);
}
}
@ -46,6 +47,16 @@ void __CheatShutdown() {
}
}
void __CheatDoState(PointerWrap &p) {
auto s = p.Section("CwCheat", 0, 1);
if (!s) {
return;
}
p.Do(CheatEvent);
CoreTiming::RestoreRegisterEvent(CheatEvent, "CheatEvent", &hleCheat);
}
void hleCheat(u64 userdata, int cyclesLate) {
CoreTiming::ScheduleEvent(msToCycles(77), CheatEvent, 0);

View File

@ -9,8 +9,12 @@
#include "base/basictypes.h"
#include "Core/MemMap.h"
class PointerWrap;
void __CheatInit();
void __CheatShutdown();
void __CheatDoState(PointerWrap &p);
std::vector<std::string> makeCodeParts(std::vector<std::string> CodesList);
class CWCheatEngine {

View File

@ -247,6 +247,7 @@ void __KernelDoState(PointerWrap &p)
__HeapDoState(p);
__PPGeDoState(p);
__CheatDoState(p);
}
{