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



commit 307e3a497e011181da5eb79ee0c8ea2143b1a4ce
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Fri Sep 20 16:00:43 2019 +0000

    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.
    
    
    (cherry picked from commit 01380f9972e4354e9835032f4b39e35ae8e7e4d4)

 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]