[gnome-games/wip/exalm/crash: 3/3] retro-runner: Separate platform from core_source



commit 9025fe93698442d44dc212d22188d8243615e0af
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date:   Fri Nov 16 00:21:09 2018 +0500

    retro-runner: Separate platform from core_source
    
    Add 'platform' field and set it in the constructors.
    
    This allows to correctly set system directory and also platform for
    screenshot metadata when core_source is null.

 src/retro/retro-runner.vala | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)
---
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index 2dbebcbd..2739d6df 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -46,6 +46,7 @@ public class Games.RetroRunner : Object, Runner {
 
        private Retro.CoreDescriptor core_descriptor;
        private RetroCoreSource core_source;
+       private Platform platform;
        private Uid uid;
        private InputCapabilities input_capabilities;
        private Settings settings;
@@ -81,6 +82,7 @@ public class Games.RetroRunner : Object, Runner {
 
                this.uid = uid;
                this.core_source = core_source;
+               this.platform = core_source.get_platform ();
                this.input_capabilities = null;
                this.game_title = game_title;
        }
@@ -92,6 +94,7 @@ public class Games.RetroRunner : Object, Runner {
 
                this.core_descriptor = null;
                this.core_source = core_source;
+               this.platform = core_source.get_platform ();
                this._media_set = media_set;
                this.uid = uid;
                this.input_capabilities = input_capabilities;
@@ -107,6 +110,7 @@ public class Games.RetroRunner : Object, Runner {
 
                this.core_descriptor = core_descriptor;
                this.core_source = null;
+               this.platform = platform;
                this._media_set = new MediaSet ();
                this.uid = uid;
                this.input_capabilities = null;
@@ -257,12 +261,9 @@ public class Games.RetroRunner : Object, Runner {
                                }
                        });
 
-               if (core_source != null) {
-                       var platforms_dir = Application.get_platforms_dir ();
-                       var platform = core_source.get_platform ();
-                       var platform_id = platform.get_id ();
-                       core.system_directory = @"$platforms_dir/$platform_id/system";
-               }
+               var platforms_dir = Application.get_platforms_dir ();
+               var platform_id = platform.get_id ();
+               core.system_directory = @"$platforms_dir/$platform_id/system";
 
                var save_directory = get_save_directory_path ();
                Application.try_make_dir (save_directory);
@@ -533,7 +534,6 @@ public class Games.RetroRunner : Object, Runner {
 
                var now = new GLib.DateTime.now_local ();
                var creation_time = now.to_string ();
-               var platform = core_source.get_platform ();
                var platform_name = platform.get_name ();
                var platform_id = platform.get_id ();
                if (platform_name == null) {
@@ -579,12 +579,9 @@ public class Games.RetroRunner : Object, Runner {
        }
 
        private string get_unsupported_system_message () {
-               if (core_source != null) {
-                       var platform = core_source.get_platform ();
-                       var platform_name = platform.get_name ();
-                       if (platform_name != null)
-                               return _("The system “%s” isn’t supported yet, but full support is 
planned.").printf (platform_name);
-               }
+               var platform_name = platform.get_name ();
+               if (platform_name != null)
+                       return _("The system “%s” isn’t supported yet, but full support is planned.").printf 
(platform_name);
 
                return _("The system isn’t supported yet, but full support is planned.");
        }


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