[gnome-games/wip/exalm/sharp-x68000: 201/203] b
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/sharp-x68000: 201/203] b
- Date: Thu, 29 Nov 2018 13:11:59 +0000 (UTC)
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]