mirror of https://github.com/mgba-emu/mgba.git
Qt: Unify state saving/loading flags
This commit is contained in:
parent
0501944b5a
commit
6d8a34a6dc
src/platform/qt
|
@ -31,6 +31,7 @@ CheatsView::CheatsView(GameController* controller, QWidget* parent)
|
|||
connect(m_ui.addSet, SIGNAL(clicked()), this, SLOT(addSet()));
|
||||
connect(m_ui.remove, SIGNAL(clicked()), this, SLOT(removeSet()));
|
||||
connect(controller, SIGNAL(gameStopped(GBAThread*)), &m_model, SLOT(invalidated()));
|
||||
connect(controller, SIGNAL(stateLoaded(GBAThread*)), &m_model, SLOT(invalidated()));
|
||||
|
||||
connect(m_ui.add, &QPushButton::clicked, [this]() {
|
||||
enterCheat(GBACheatAddLine);
|
||||
|
|
|
@ -58,6 +58,8 @@ GameController::GameController(QObject* parent)
|
|||
, m_stateSlot(1)
|
||||
, m_backupLoadState(nullptr)
|
||||
, m_backupSaveState(nullptr)
|
||||
, m_saveStateFlags(SAVESTATE_SCREENSHOT | SAVESTATE_SAVEDATA | SAVESTATE_CHEATS)
|
||||
, m_loadStateFlags(SAVESTATE_SCREENSHOT)
|
||||
{
|
||||
m_renderer = new GBAVideoSoftwareRenderer;
|
||||
GBAVideoSoftwareRendererCreate(m_renderer);
|
||||
|
@ -112,7 +114,7 @@ GameController::GameController(QObject* parent)
|
|||
context->gba->video.renderer->disableOBJ = !controller->m_videoLayers[4];
|
||||
controller->m_fpsTarget = context->fpsTarget;
|
||||
|
||||
if (context->dirs.state && GBALoadState(context, context->dirs.state, 0, SAVESTATE_SCREENSHOT)) {
|
||||
if (context->dirs.state && GBALoadState(context, context->dirs.state, 0, controller->m_loadStateFlags)) {
|
||||
VFile* vf = GBAGetState(context->gba, context->dirs.state, 0, true);
|
||||
if (vf) {
|
||||
vf->truncate(vf, 0);
|
||||
|
@ -141,7 +143,7 @@ GameController::GameController(QObject* parent)
|
|||
return false;
|
||||
}
|
||||
GameController* controller = static_cast<GameController*>(context->userData);
|
||||
if (!GBASaveState(context, context->dirs.state, 0, true)) {
|
||||
if (!GBASaveState(context, context->dirs.state, 0, controller->m_saveStateFlags)) {
|
||||
return false;
|
||||
}
|
||||
QMetaObject::invokeMethod(controller, "closeGame");
|
||||
|
@ -710,7 +712,7 @@ void GameController::loadState(int slot) {
|
|||
controller->m_backupLoadState = new GBASerializedState;
|
||||
}
|
||||
GBASerialize(context->gba, controller->m_backupLoadState);
|
||||
if (GBALoadState(context, context->dirs.state, controller->m_stateSlot, SAVESTATE_SCREENSHOT)) {
|
||||
if (GBALoadState(context, context->dirs.state, controller->m_stateSlot, controller->m_loadStateFlags)) {
|
||||
controller->frameAvailable(controller->m_drawContext);
|
||||
controller->stateLoaded(context);
|
||||
}
|
||||
|
@ -733,7 +735,7 @@ void GameController::saveState(int slot) {
|
|||
vf->read(vf, controller->m_backupSaveState.data(), controller->m_backupSaveState.size());
|
||||
vf->close(vf);
|
||||
}
|
||||
GBASaveState(context, context->dirs.state, controller->m_stateSlot, SAVESTATE_SCREENSHOT | EXTDATA_SAVEDATA);
|
||||
GBASaveState(context, context->dirs.state, controller->m_stateSlot, controller->m_saveStateFlags);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -209,6 +209,8 @@ private:
|
|||
int m_stateSlot;
|
||||
GBASerializedState* m_backupLoadState;
|
||||
QByteArray m_backupSaveState;
|
||||
int m_saveStateFlags;
|
||||
int m_loadStateFlags;
|
||||
|
||||
InputController* m_inputController;
|
||||
MultiplayerController* m_multiplayer;
|
||||
|
|
Loading…
Reference in New Issue