From 6d8a34a6dcb5c819a978933bf47f3396ab6a7d3a Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sun, 24 Jan 2016 18:25:07 -0800 Subject: [PATCH] Qt: Unify state saving/loading flags --- src/platform/qt/CheatsView.cpp | 1 + src/platform/qt/GameController.cpp | 10 ++++++---- src/platform/qt/GameController.h | 2 ++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/platform/qt/CheatsView.cpp b/src/platform/qt/CheatsView.cpp index 357a0c788..4ba25aef7 100644 --- a/src/platform/qt/CheatsView.cpp +++ b/src/platform/qt/CheatsView.cpp @@ -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); diff --git a/src/platform/qt/GameController.cpp b/src/platform/qt/GameController.cpp index 67a63a43d..d2d900d0d 100644 --- a/src/platform/qt/GameController.cpp +++ b/src/platform/qt/GameController.cpp @@ -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(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); }); } diff --git a/src/platform/qt/GameController.h b/src/platform/qt/GameController.h index adda42243..0d757bce1 100644 --- a/src/platform/qt/GameController.h +++ b/src/platform/qt/GameController.h @@ -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;