mirror of https://github.com/mgba-emu/mgba.git
Qt: Use latest cheat set for set properties
This commit is contained in:
parent
097feb0a55
commit
815e4d5b0d
|
@ -724,12 +724,7 @@ bool GBACheatParseFile(struct GBACheatDevice* device, struct VFile* vf) {
|
|||
GBACheatAddSet(device, set);
|
||||
}
|
||||
if (set && !reset) {
|
||||
newSet->gsaVersion = set->gsaVersion;
|
||||
memcpy(newSet->gsaSeeds, set->gsaSeeds, sizeof(newSet->gsaSeeds));
|
||||
if (set->hook) {
|
||||
newSet->hook = set->hook;
|
||||
++newSet->hook->refs;
|
||||
}
|
||||
GBACheatSetCopyProperties(newSet, set);
|
||||
} else {
|
||||
_setGameSharkVersion(newSet, gsaVersion);
|
||||
}
|
||||
|
@ -935,6 +930,21 @@ void GBACheatRefresh(struct GBACheatDevice* device, struct GBACheatSet* cheats)
|
|||
}
|
||||
}
|
||||
|
||||
void GBACheatSetCopyProperties(struct GBACheatSet* newSet, struct GBACheatSet* set) {
|
||||
newSet->gsaVersion = set->gsaVersion;
|
||||
memcpy(newSet->gsaSeeds, set->gsaSeeds, sizeof(newSet->gsaSeeds));
|
||||
if (set->hook) {
|
||||
if (newSet->hook) {
|
||||
--newSet->hook->refs;
|
||||
if (newSet->hook->refs == 0) {
|
||||
free(newSet->hook);
|
||||
}
|
||||
}
|
||||
newSet->hook = set->hook;
|
||||
++newSet->hook->refs;
|
||||
}
|
||||
}
|
||||
|
||||
void GBACheatDeviceInit(struct ARMCore* cpu, struct ARMComponent* component) {
|
||||
struct GBACheatDevice* device = (struct GBACheatDevice*) component;
|
||||
device->p = (struct GBA*) cpu->master;
|
||||
|
|
|
@ -188,6 +188,7 @@ void GBACheatAttachDevice(struct GBA* gba, struct GBACheatDevice*);
|
|||
|
||||
void GBACheatAddSet(struct GBACheatDevice*, struct GBACheatSet*);
|
||||
void GBACheatRemoveSet(struct GBACheatDevice*, struct GBACheatSet*);
|
||||
void GBACheatSetCopyProperties(struct GBACheatSet* newSet, struct GBACheatSet* set);
|
||||
|
||||
bool GBACheatAddCodeBreaker(struct GBACheatSet*, uint32_t op1, uint16_t op2);
|
||||
bool GBACheatAddCodeBreakerLine(struct GBACheatSet*, const char* line);
|
||||
|
|
|
@ -222,6 +222,10 @@ void CheatsModel::saveFile(const QString& path) {
|
|||
|
||||
void CheatsModel::addSet(GBACheatSet* set) {
|
||||
beginInsertRows(QModelIndex(), GBACheatSetsSize(&m_device->cheats), GBACheatSetsSize(&m_device->cheats));
|
||||
size_t size = GBACheatSetsSize(&m_device->cheats);
|
||||
if (size) {
|
||||
GBACheatSetCopyProperties(set, *GBACheatSetsGetPointer(&m_device->cheats, size - 1));
|
||||
}
|
||||
GBACheatAddSet(m_device, set);
|
||||
endInsertRows();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue