[gnome-games] nintendo-ds: Reset screen mode when resetting the game



commit 01380f9972e4354e9835032f4b39e35ae8e7e4d4
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Fri Sep 20 21:00:43 2019 +0500

    nintendo-ds: Reset screen mode when resetting the game
    
    While some data should be carried over from the latest savestate even if
    the game is reset, screen layout shouldn't be.

 plugins/nintendo-ds/src/nintendo-ds-runner.vala | 8 +++++++-
 src/retro/retro-runner.vala                     | 6 +++---
 2 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/plugins/nintendo-ds/src/nintendo-ds-runner.vala b/plugins/nintendo-ds/src/nintendo-ds-runner.vala
index 7ca20c47..bfebab0f 100644
--- a/plugins/nintendo-ds/src/nintendo-ds-runner.vala
+++ b/plugins/nintendo-ds/src/nintendo-ds-runner.vala
@@ -121,7 +121,13 @@ private class Games.NintendoDsRunner : RetroRunner {
                ds_savestate.view_bottom_screen = view_bottom_screen;
        }
 
-       protected override void load_extra_savestate_metadata (Savestate savestate) {
+       protected override void load_extra_savestate_metadata (Savestate savestate, bool reset) {
+               if (reset) {
+                       screen_layout = NintendoDsLayout.TOP_BOTTOM;
+                       view_bottom_screen = false;
+                       return;
+               }
+
                assert (savestate is NintendoDsSavestate);
 
                var ds_savestate = savestate as NintendoDsSavestate;
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index 087799cf..4364791a 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -206,7 +206,7 @@ public class Games.RetroRunner : Object, Runner {
                if (previewed_savestate.has_media_data ())
                        media_set.selected_media_number = previewed_savestate.get_media_data ();
 
-               load_extra_savestate_metadata (previewed_savestate);
+               load_extra_savestate_metadata (previewed_savestate, false);
 
                is_ready = true;
        }
@@ -243,7 +243,7 @@ public class Games.RetroRunner : Object, Runner {
                loop.start ();
 
                if (latest_savestate != null)
-                       load_extra_savestate_metadata (latest_savestate);
+                       load_extra_savestate_metadata (latest_savestate, true);
 
                running = true;
        }
@@ -664,7 +664,7 @@ public class Games.RetroRunner : Object, Runner {
        protected virtual void save_extra_savestate_metadata (Savestate savestate) {
        }
 
-       protected virtual void load_extra_savestate_metadata (Savestate savestate) {
+       protected virtual void load_extra_savestate_metadata (Savestate savestate, bool reset) {
        }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]