[gnome-games/wip/exalm/sharp-x68000: 201/203] b



commit e19059af51b4c05d8dbd079cfc6a7682bd8ed7c6
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date:   Fri Aug 3 21:48:48 2018 +0500

    b

 .../src/sharp-x68000-game-factory.vala             | 52 +++++++++++++++++++---
 plugins/sharp-x68000/src/sharp-x68000-plugin.vala  | 10 ++++-
 src/retro/retro-core-source.vala                   |  2 +-
 3 files changed, 56 insertions(+), 8 deletions(-)
---
diff --git a/plugins/sharp-x68000/src/sharp-x68000-game-factory.vala 
b/plugins/sharp-x68000/src/sharp-x68000-game-factory.vala
index ff120471..75ebbf51 100644
--- a/plugins/sharp-x68000/src/sharp-x68000-game-factory.vala
+++ b/plugins/sharp-x68000/src/sharp-x68000-game-factory.vala
@@ -7,21 +7,24 @@ public class Games.SharpX68000GameFactory : Object, UriGameFactory {
        private const string MIME_TYPE_HDF = "application/x-x68k-hdf-rom";
        private const string MIME_TYPE_TGDB = "application/x-sharp-x68000-rom";
        private const string PLATFORM = "SharpX68000";
+       private const string PLATFORM_NAME = "Sharp X68000";
        private const string ICON_NAME = "media-floppy-symbolic";
 
        private HashTable<string, PartialGameData?> uris_for_game;
        private HashTable<Uri, Game> game_for_uri;
        private GenericSet<Game> games;
+       private Platform platform;
 
        private struct PartialGameData {
                Uri?[] uris;
                string?[] titles;
        }
 
-       public SharpX68000GameFactory () {
+       public SharpX68000GameFactory (Platform platform) {
                uris_for_game = new HashTable<string, PartialGameData?> (str_hash, str_equal);
                game_for_uri = new HashTable<Uri, Game> (Uri.hash, Uri.equal);
                games = new GenericSet<Game> (direct_hash, direct_equal);
+               this.platform = platform;
        }
 
        public string[] get_mime_types () {
@@ -159,15 +162,33 @@ public class Games.SharpX68000GameFactory : Object, UriGameFactory {
        private Game create_multi_disk_game (Uri uri, MediaSet media_set, string mime_type) throws Error {
                var uid = new FingerprintUid (uri, FINGERPRINT_PREFIX);
                var title = new FilenameTitle (uri);
-               var icon = new DummyIcon ();
                var media = new GriloMedia (title, MIME_TYPE_TGDB);
                var cover = new CompositeCover ({
                        new LocalCover (uri),
                        new GriloCover (media, uid)});
-               var core_source = new RetroCoreSource (PLATFORM, get_mime_types ());
+               var release_date = new GriloReleaseDate (media, uid);
+               var cooperative = new GriloCooperative (media, uid);
+               var genre = new GriloGenre (media, uid);
+               var players = new GriloPlayers (media, uid);
+               var developer = new GriloDeveloper (media);
+               var publisher = new GriloPublisher (media);
+               var description = new GriloDescription (media);
+               var rating = new GriloRating (media);
+               var core_source = new RetroCoreSource (platform, get_mime_types ());
                RetroRunner runner = new RetroRunner.for_media_set (core_source, media_set, uid, title);
 
-               return new GenericGame (title, icon, cover, runner);
+               var game = new GenericGame (uid, title, platform, runner);
+               game.set_cover (cover);
+               game.set_release_date (release_date);
+               game.set_cooperative (cooperative);
+               game.set_genre (genre);
+               game.set_players (players);
+               game.set_developer (developer);
+               game.set_publisher (publisher);
+               game.set_description (description);
+               game.set_rating (rating);
+
+               return game;
        }
 
        private Game create_game (Uri uri, string mime_type) throws Error {
@@ -178,9 +199,28 @@ public class Games.SharpX68000GameFactory : Object, UriGameFactory {
                var cover = new CompositeCover ({
                        new LocalCover (uri),
                        new GriloCover (media, uid)});
-               var core_source = new RetroCoreSource (PLATFORM, get_mime_types ());
+               var release_date = new GriloReleaseDate (media, uid);
+               var cooperative = new GriloCooperative (media, uid);
+               var genre = new GriloGenre (media, uid);
+               var players = new GriloPlayers (media, uid);
+               var developer = new GriloDeveloper (media);
+               var publisher = new GriloPublisher (media);
+               var description = new GriloDescription (media);
+               var rating = new GriloRating (media);
+               var core_source = new RetroCoreSource (platform, get_mime_types ());
                RetroRunner runner = new RetroRunner (core_source, uri, uid, title);
 
-               return new GenericGame (title, icon, cover, runner);
+               var game = new GenericGame (uid, title, platform, runner);
+               game.set_cover (cover);
+               game.set_release_date (release_date);
+               game.set_cooperative (cooperative);
+               game.set_genre (genre);
+               game.set_players (players);
+               game.set_developer (developer);
+               game.set_publisher (publisher);
+               game.set_description (description);
+               game.set_rating (rating);
+
+               return game;
        }
 }
diff --git a/plugins/sharp-x68000/src/sharp-x68000-plugin.vala 
b/plugins/sharp-x68000/src/sharp-x68000-plugin.vala
index 11fefadf..92ee71a0 100644
--- a/plugins/sharp-x68000/src/sharp-x68000-plugin.vala
+++ b/plugins/sharp-x68000/src/sharp-x68000-plugin.vala
@@ -4,13 +4,21 @@ private class Games.SharpX68000Plugin : Object, Plugin {
        private const string MIME_TYPE_DIM = "application/x-x68k-rom";
        private const string MIME_TYPE_XDF = "application/x-x68k-xdf-rom";
        private const string MIME_TYPE_HDF = "application/x-x68k-hdf-rom";
+       private const string PLATFORM_ID = "SharpX68000";
+       private const string PLATFORM_NAME = _("Sharp X68000");
+
+       private static Platform platform;
+
+       static construct {
+               platform = new GenericPlatform (PLATFORM_ID, PLATFORM_NAME);
+       }
 
        public string[] get_mime_types () {
                return { MIME_TYPE_DIM, MIME_TYPE_XDF, MIME_TYPE_HDF };
        }
 
        public UriGameFactory[] get_uri_game_factories () {
-               var factory = new SharpX68000GameFactory ();
+               var factory = new SharpX68000GameFactory (platform);
 
                return { factory };
        }
diff --git a/src/retro/retro-core-source.vala b/src/retro/retro-core-source.vala
index 4cbaf5f8..f6382f1a 100644
--- a/src/retro/retro-core-source.vala
+++ b/src/retro/retro-core-source.vala
@@ -78,7 +78,7 @@ public class Games.RetroCoreSource : Object {
                var platforms_dir = Application.get_platforms_dir ();
                var platform_id = platform.get_id ();
                var firmware_path = core_descriptor.get_firmware_path (firmware);
-               var firmware_file = File.new_for_path(@"$platforms_dir/$platform/system/" + firmware_path);
+               var firmware_file = File.new_for_path(@"$platforms_dir/$platform_id/system/" + firmware_path);
                if (!firmware_file.query_exists ())
                        throw new RetroError.FIRMWARE_NOT_FOUND (_("This game requires the %s firmware file 
to run."), firmware_file.get_path ());
 


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