This is an automated email from the git hooks/post-receive script. detiste-guest pushed a commit to branch master in repository game-data-packager.
commit fa7b5f6010b08101411ea343fc2f8abe668181ca Author: Alexandre Detiste <[email protected]> Date: Mon Mar 9 12:35:16 2015 +0100 rework engine definition, avoid need for duplicated data The 'debian: engine:' tag is moved to top-level 'engine:' tag that can be overiden at package level if needed. This let avoid the need to specify the the same engine for a game and it's demo. The doom_common.py plugin is reworked to derive the engine program binary from the engine package name; again to avoid duplicated data. The current default doom-engine is now set in an unique location; and it isn't needed to explicitely set anymore in all the .yaml files using the doom_common.py plugin. --- data/chex.yaml | 2 -- data/descent1.yaml | 3 +-- data/descent2.yaml | 3 +-- data/doom.yaml | 1 - data/doom2.yaml | 5 +---- data/doom3.yaml | 6 ++---- data/final-doom.yaml | 2 -- data/hacx.yaml | 2 -- data/heretic.yaml | 6 +----- data/hexen.yaml | 14 ++++---------- data/hexen2.yaml | 4 +--- data/ja.yaml | 2 +- data/jk2.yaml | 2 +- data/lgeneral.yaml | 3 +-- data/quake.yaml | 3 +-- data/quake2.yaml | 4 +--- data/quake3.yaml | 10 ++++------ data/rott.yaml | 3 +-- data/rtcw.yaml | 2 +- data/spear-of-destiny.yaml | 3 +-- data/strife.yaml | 2 -- data/syndicate.yaml | 4 ++-- data/theme-hospital.yaml | 3 +-- data/tyrian.yaml | 3 +-- data/wolf3d.yaml | 4 +--- doc/adding_a_game.mdwn | 2 ++ game_data_packager/__init__.py | 24 ++++++++++++++++-------- game_data_packager/games/doom_common.py | 24 +++++++++++++++--------- game_data_packager/games/residualvm_common.py | 6 ++---- game_data_packager/games/scummvm_common.py | 6 ++---- 30 files changed, 65 insertions(+), 93 deletions(-) diff --git a/data/chex.yaml b/data/chex.yaml index ca3c42b..fdc4fc4 100644 --- a/data/chex.yaml +++ b/data/chex.yaml @@ -12,8 +12,6 @@ packages: chexquest-data: longname: Chex Quest overide_fill_docs: false - debian: - engine: "chocolate-doom | doom-engine" install_to: usr/share/games/doom install: - chex.wad diff --git a/data/descent1.yaml b/data/descent1.yaml index 1679c0f..88873b8 100644 --- a/data/descent1.yaml +++ b/data/descent1.yaml @@ -2,13 +2,13 @@ --- longname: "Descent: First Strike" copyright: © 1994 Parallax Software Corporation +engine: d1x-rebirth packages: descent1-demo-data: longname: "Descent: First Strike (demo)" demo_for: descent1-full-data debian: - engine: d1x-rebirth conflicts: descent1-full-data install: - descent.hog @@ -22,7 +22,6 @@ packages: descent1-full-data: longname: "Descent: First Strike" debian: - engine: d1x-rebirth conflicts: descent1-demo-data install: - descent.hog_full diff --git a/data/descent2.yaml b/data/descent2.yaml index f7b4fd9..31c50c6 100644 --- a/data/descent2.yaml +++ b/data/descent2.yaml @@ -2,12 +2,11 @@ --- longname: Descent II copyright: © 1995 Parallax Software Corporation +engine: d2x-rebirth packages: descent2-demo-data: longname: Descent II - debian: - engine: d2x-rebirth install: - d2demo.pig - d2demo.ham diff --git a/data/doom.yaml b/data/doom.yaml index f7caca4..e64ee2b 100644 --- a/data/doom.yaml +++ b/data/doom.yaml @@ -26,7 +26,6 @@ help_text: | packages: doom-wad: debian: - engine: "chocolate-doom | doom-engine" conflicts: freedoom (<< 0.6.4-4), freedm (<< 0.6.4-4) steam: id: 2280 diff --git a/data/doom2.yaml b/data/doom2.yaml index 4d61111..0833118 100644 --- a/data/doom2.yaml +++ b/data/doom2.yaml @@ -20,7 +20,6 @@ help_text: | packages: doom2-wad: debian: - engine: "chocolate-doom | doom-engine" provides: doom-wad conflicts: freedoom (<< 0.6.4-4), freedm (<< 0.6.4-4) steam: @@ -34,9 +33,7 @@ packages: doom2-nerve-wad: longname: "No Rest for the Living" expansion_for: doom2-wad - doom_engine: prboom-plus - debian: - recommends: prboom-plus + engine: prboom-plus steam: id: 208200 path: "common/DOOM 3 BFG Edition" diff --git a/data/doom3.yaml b/data/doom3.yaml index e3e8011..8dc11a4 100644 --- a/data/doom3.yaml +++ b/data/doom3.yaml @@ -3,13 +3,12 @@ compress-deb: false longname: 'Doom 3 (original or BFG Edition)' try_repack_from: [/usr/local/share/dhewm3] +engine: dhewm3-doom3 packages: doom3-data: longname: 'Doom 3' copyright: © 2004 id Software - debian: - engine: dhewm3-doom3 steam: id: 9050 install: @@ -93,8 +92,7 @@ packages: doom3bfg-data: longname: 'Doom 3: BFG Edition' copyright: © 2012 id Software - debian: - engine: rbdoom3bfg + engine: rbdoom3bfg steam: id: 208200 path: "common/DOOM 3 BFG Edition" diff --git a/data/final-doom.yaml b/data/final-doom.yaml index 72e3b74..de4502a 100644 --- a/data/final-doom.yaml +++ b/data/final-doom.yaml @@ -23,7 +23,6 @@ packages: longname: "Final Doom: TNT: Evilution" aliases: [tnt, t] debian: - engine: "chocolate-doom | doom-engine" provides: doom-wad conflicts: freedoom (<< 0.6.4-4), freedm (<< 0.6.4-4) install: @@ -34,7 +33,6 @@ packages: longname: "Final Doom: The Plutonia Experiment" aliases: [plutonia, p] debian: - engine: "chocolate-doom | doom-engine" provides: doom-wad conflicts: freedoom (<< 0.6.4-4), freedm (<< 0.6.4-4) install: diff --git a/data/hacx.yaml b/data/hacx.yaml index d35dbe8..66da4bc 100644 --- a/data/hacx.yaml +++ b/data/hacx.yaml @@ -18,8 +18,6 @@ help_text: | packages: hacx-data: overide_fill_docs: false - debian: - engine: "chocolate-doom | doom-engine" install_to: usr/share/games/doom install: - hacx.wad diff --git a/data/heretic.yaml b/data/heretic.yaml index 34960db..01aa4a6 100644 --- a/data/heretic.yaml +++ b/data/heretic.yaml @@ -8,7 +8,7 @@ longname: "Heretic: Shadow of the Serpent Riders" copyright: © 1994 Raven Software plugin: doom_common -doom_engine: heretic +engine: "chocolate-doom | heretic-engine" help_text: | Please provide HERETIC.WAD from Heretic v1.3, and/or HERETIC1.WAD @@ -25,16 +25,12 @@ packages: steam: id: 2390 path: "common/Heretic Shadow of the Serpent Riders" - debian: - engine: "chocolate-doom | heretic-engine" install_to: usr/share/games/doom install: - heretic.wad heretic-shareware-data: longname: "Heretic (shareware)" - debian: - engine: "chocolate-doom | heretic-engine" install_to: usr/share/games/doom demo_for: heretic-wad install: diff --git a/data/hexen.yaml b/data/hexen.yaml index 3faf506..4a6fb76 100644 --- a/data/hexen.yaml +++ b/data/hexen.yaml @@ -20,12 +20,10 @@ help_text: | hexendemo.wad to avoid colliding with the full version of Hexen. plugin: doom_common -doom_engine: hexen +engine: "chocolate-doom | hexen-engine" packages: hexen-wad: - debian: - engine: "chocolate-doom | hexen-engine" steam: id: 2360 path: "common/Hexen" @@ -49,13 +47,9 @@ packages: demo_for: hexen-wad install: - hexendemo.wad - # this goes in the .desktop file... - doom_engine: doomsday-compat - # ... so we must have Recommends: doomsday. The other provider - # of hexen-engine, chocolate-doom, can play the full game but not - # the demo. - debian: - engine: doomsday + # The other provider of hexen-engine, chocolate-doom, + # can play the full game but not the demo. + engine: doomsday files: diff --git a/data/hexen2.yaml b/data/hexen2.yaml index eee568b..8c5f971 100644 --- a/data/hexen2.yaml +++ b/data/hexen2.yaml @@ -3,6 +3,7 @@ shortname: hexen2 longname: Hexen II copyright: © 1997 Raven Software +engine: "uhexen2 | hexen2-engine" help_text: | For hexen2-data, you must provide the version 1.11 patched versions @@ -23,7 +24,6 @@ packages: longname: Hexen II (demo) demo_for: hexen2-data debian: - engine: "uhexen2 | hexen2-engine" conflicts: hexen2-data install_to: usr/share/games/hexen2 install: @@ -34,8 +34,6 @@ packages: hexen2-data: longname: Hexen II - debian: - engine: "uhexen2 | hexen2-engine" steam: id: 9060 path: "common/Hexen 2" diff --git a/data/ja.yaml b/data/ja.yaml index 8f8a089..c4e6253 100644 --- a/data/ja.yaml +++ b/data/ja.yaml @@ -8,6 +8,7 @@ copyright: © 2003 Activision, Inc. / LucasArts, a division of Lucasfilm Enterta # alongside ~ 1.2 GiB of compressed zip files. xz can save 20 MiB, # but that's less than 2% of the total size and takes 10 times as long. compress_deb: false +engine: openjk-academy | openjk-academy-server steam: id: 6020 @@ -34,7 +35,6 @@ packages: jedi-academy-data: debian: version: '1.01' - engine: openjk-academy | openjk-academy-server install_files_from_cksums: | # Jedi Academy CD1 GameData/GameData or installation 3585517488 561806019 base/assets0.pk3 diff --git a/data/jk2.yaml b/data/jk2.yaml index a9cd801..2193508 100644 --- a/data/jk2.yaml +++ b/data/jk2.yaml @@ -3,6 +3,7 @@ shortname: jk2 longname: "Star Wars Jedi Knight II: Jedi Outcast" copyright: © 2003 Activision, Inc. / LucasArts, a division of Lucasfilm Entertainment Company Ltd. +engine: openjk-outcast # Like Jedi Academy, there isn't much point in compressing this .deb. compress_deb: false @@ -27,7 +28,6 @@ packages: jedi-outcast-data: debian: version: '1.04' - engine: openjk-outcast # cksums(1) is pretty useless as a checksumming tool, but it's a convenient # way to get exact file sizes in bytes (second column), which are a nice # heuristic for identifying files diff --git a/data/lgeneral.yaml b/data/lgeneral.yaml index 2ffe4fa..9708c7d 100644 --- a/data/lgeneral.yaml +++ b/data/lgeneral.yaml @@ -3,6 +3,7 @@ shortname: lgeneral longname: LGeneral copyright: © 1994 SSI Inc. +engine: lgeneral help_text: | Data from Panzer General can be downloaded automatically. @@ -19,8 +20,6 @@ packages: # The actual game files are converted by lgc-pg, in Python code. install: - pg-data.tar.gz - debian: - engine: lgeneral files: pg-data.tar.gz: diff --git a/data/quake.yaml b/data/quake.yaml index c017319..7da4e58 100644 --- a/data/quake.yaml +++ b/data/quake.yaml @@ -2,6 +2,7 @@ --- longname: Quake copyright: © 1996 id Software +engine: quake | quake-server help_text: | For quake-registered, you must provide id1/pak1.pak or a directory @@ -28,7 +29,6 @@ packages: demo_for: quake-registered longname: Quake (shareware) debian: - engine: quake | quake-server provides: quake-data install: - id1/pak0.pak_106 @@ -38,7 +38,6 @@ packages: quake-registered: debian: - engine: quake | quake-server provides: quake-data steam: id: 2310 diff --git a/data/quake2.yaml b/data/quake2.yaml index d76c793..5e534dc 100644 --- a/data/quake2.yaml +++ b/data/quake2.yaml @@ -3,6 +3,7 @@ longname: Quake II copyright: © 1997 id Software aliases: [q2rogue, q2xatrix] +engine: quake2 | quake2-server help_text: | For quake2-full-data, you must provide baseq2/pak0.pak and the baseq2/video @@ -27,7 +28,6 @@ packages: quake2-full-data: longname: Quake II debian: - engine: quake2 | quake2-server replaces: quake2-data steam: id: 2320 @@ -204,8 +204,6 @@ packages: quake2-demo-data: longname: "Quake II (demo)" demo_for: quake2-full-data - debian: - engine: quake2 | quake2-server install_to_docdir: - quake2_manual install_contents_of: diff --git a/data/quake3.yaml b/data/quake3.yaml index fc2a7c2..10bdf7d 100644 --- a/data/quake3.yaml +++ b/data/quake3.yaml @@ -3,6 +3,7 @@ shortname: quake3 longname: Quake III Arena copyright: © 1999 id Software +engine: quake3 | quake3-server compress_deb: false try_repack_from: # Older versions of g-d-p used this directory @@ -32,8 +33,6 @@ help_text: | packages: quake3-data: longname: Quake III Arena - debian: - engine: quake3 | quake3-server steam: id: 2200 path: "common/Quake 3 Arena" @@ -154,10 +153,9 @@ packages: quake3-demo-data: longname: Quake III Arena (demo) - debian: - # deliberately no quake3-server alternative, I'm pretty sure it isn't - # network-compatible with anything - engine: quake3 (>= 10) + # deliberately no quake3-server alternative, I'm pretty sure it isn't + # network-compatible with anything + engine: quake3 (>= 10) demo_for: quake3-data install_to: usr/share/games/quake3-demo-data/demoq3 install: diff --git a/data/rott.yaml b/data/rott.yaml index bee608e..b2728db 100644 --- a/data/rott.yaml +++ b/data/rott.yaml @@ -3,6 +3,7 @@ shortname: rott longname: Rise of the Triad copyright: © 1995 Apogee Software +engine: rott steam: id: 238050 @@ -14,7 +15,6 @@ packages: # December 21, 1994 copyright: © 1994 Apogee Software debian: - engine: rott replaces: rott (<< 1.1.1-4) # this shareware data are considered a as full game because # it includes the HUNT Begin levels not present in the commercial game @@ -35,7 +35,6 @@ packages: longname: "Rise of the Triad: Dark War" debian: depends: rott-data - engine: rott install_to: usr/share/games/rott install: - any_registered_rtc diff --git a/data/rtcw.yaml b/data/rtcw.yaml index 6e849c8..a590ead 100644 --- a/data/rtcw.yaml +++ b/data/rtcw.yaml @@ -3,6 +3,7 @@ shortname: rtcw longname: Return to Castle Wolfenstein copyright: © 2001 id Software, Inc. and Activision Publishing, Inc. +engine: rtcw # Like Jedi Academy, there isn't much point in compressing this .deb. compress_deb: false @@ -13,7 +14,6 @@ packages: id: 9010 path: "common/Return to Castle Wolfenstein" debian: - engine: rtcw # GDP version will be suffixed to this, e.g. : 1.42b+39 version: 1.42b diff --git a/data/spear-of-destiny.yaml b/data/spear-of-destiny.yaml index 39481f5..aa4d382 100644 --- a/data/spear-of-destiny.yaml +++ b/data/spear-of-destiny.yaml @@ -4,6 +4,7 @@ shortname: spear-of-destiny aliases: [spear] longname: "Spear of Destiny (Wolfenstein 3D prequel)" copyright: © 1992 id Software +engine: wolf4sdl steam: id: 9000 @@ -29,7 +30,6 @@ packages: longname: "Spear of Destiny (shareware)" demo_for: spear-of-destiny-data debian: - engine: wolf4sdl provides: wolf3d-data install_to: usr/share/games/wolf3d install_files_from_cksums: | @@ -47,7 +47,6 @@ packages: spear-of-destiny-data: longname: "Spear of Destiny (registered version, mission 1)" debian: - engine: wolf4sdl provides: wolf3d-data install_to: usr/share/games/wolf3d install_files_from_cksums: | diff --git a/data/strife.yaml b/data/strife.yaml index 7675078..948582b 100644 --- a/data/strife.yaml +++ b/data/strife.yaml @@ -20,8 +20,6 @@ help_text: | packages: strife-data: overide_fill_docs: false - debian: - engine: "chocolate-doom | doom-engine" steam: id: 317040 path: common/Strife diff --git a/data/syndicate.yaml b/data/syndicate.yaml index d308ad1..1f8cafd 100644 --- a/data/syndicate.yaml +++ b/data/syndicate.yaml @@ -4,13 +4,13 @@ try_repack_from: [/usr/share/games/freesynd/data] copyright: © 1993 Bullfrog Productions +engine: freesynd + packages: syndicate-data: install_to: usr/share/games/freesynd/data # this should be engine-agnostic: # usr/share/games/syndicate - debian: - engine: freesynd install: - col01.dat - game01.dat diff --git a/data/theme-hospital.yaml b/data/theme-hospital.yaml index 656cd52..3dd8644 100644 --- a/data/theme-hospital.yaml +++ b/data/theme-hospital.yaml @@ -2,6 +2,7 @@ --- longname: Theme Hospital copyright: © 1997 Bullfrog Productions +engine: corsix-th help_text: | For the full version, provide a Theme Hospital installation, @@ -19,7 +20,6 @@ packages: install_to: usr/share/games/theme-hospital debian: conflicts: theme-hospital-demo-data - engine: corsix-th optional: # documentation - EN.pdf @@ -491,7 +491,6 @@ packages: install_to: usr/share/games/theme-hospital demo_for: theme-hospital-full-data debian: - engine: corsix-th conflicts: theme-hospital-full-data install: - anims/winlevel.smk_demo diff --git a/data/tyrian.yaml b/data/tyrian.yaml index 479d4f7..040bec0 100644 --- a/data/tyrian.yaml +++ b/data/tyrian.yaml @@ -2,6 +2,7 @@ --- shortname: tyrian copyright: © 1995 Epic MegaGames +engine: opentyrian help_text: | The full version of Tyrian can be downloaded at no cost. @@ -10,8 +11,6 @@ help_text: | packages: tyrian-data: - debian: - engine: opentyrian # there are two identical files in the zip symlinks: usr/share/games/tyrian/netset.pcx: usr/share/games/tyrian/tyrset.pcx diff --git a/data/wolf3d.yaml b/data/wolf3d.yaml index da042f9..8239dd1 100644 --- a/data/wolf3d.yaml +++ b/data/wolf3d.yaml @@ -2,6 +2,7 @@ --- longname: Wolfenstein 3D copyright: © 1992 Apogee +engine: wolf4sdl packages: wolf3d-demo-data: @@ -10,7 +11,6 @@ packages: - wolf3d-full-v14-data longname: Wolfenstein 3D (demo) debian: - engine: wolf4sdl provides: wolf3d-data replaces: wolf3d-data-wl1 install_to: usr/share/games/wolf3d @@ -30,7 +30,6 @@ packages: longname: Wolfenstein 3D v1.2 better_version: wolf3d-full-v14-data debian: - engine: wolf4sdl provides: wolf3d-data conflicts: wolf3d-full-v14-data install_to: usr/share/games/wolf3d @@ -47,7 +46,6 @@ packages: wolf3d-full-v14-data: longname: Wolfenstein 3D v1.4 debian: - engine: wolf4sdl provides: wolf3d-data conflicts: wolf3d-full-v12-data steam: diff --git a/doc/adding_a_game.mdwn b/doc/adding_a_game.mdwn index fc51f0d..1faa714 100644 --- a/doc/adding_a_game.mdwn +++ b/doc/adding_a_game.mdwn @@ -17,6 +17,7 @@ which should get you easily started. III Arena. * `copyright`: string: © <year_of_first_release> <developper/publisher> This should match the title screen of the game, if any. +* `engine`: string: package name that contain the program needed to run the game. * `compress_deb`: boolean, default true: If false, the `.deb` will never be compressed. Use this if it contains non-compressible files (e.g. `*.pk3` which are zip files) for which `xz` will waste a lot of time and @@ -101,6 +102,7 @@ to mapping: Quake III Team Arena for Quake III Arena. * `install`: list of strings: unique names of known files or alternative sets to install +* `engine`: let you overide the engine in special cases ### Step 2: required files for the `.deb` diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py index bdbefef..20eb0f9 100644 --- a/game_data_packager/__init__.py +++ b/game_data_packager/__init__.py @@ -353,6 +353,9 @@ class GameDataPackage(object): # Steam ID and path self.steam = {} + # overide the game engine when needed + self.engine = None + # depedency information needed to build the debian/control file self.debian = {} @@ -450,6 +453,9 @@ class GameData(object): # The one-line copyright notice used to build debian/copyright self.copyright = None + # The game engine used to run the game (package name) + self.engine = None + # A temporary directory. self.workdir = workdir @@ -482,7 +488,7 @@ class GameData(object): self.argument_parser = None for k in ('longname', 'copyright', 'compress_deb', 'help_text', - 'steam'): + 'steam','engine'): if k in self.yaml: setattr(self, k, self.yaml[k]) @@ -730,7 +736,7 @@ class GameData(object): for k in ('expansion_for', 'longname', 'symlinks', 'install_to', 'install_to_docdir', 'install_contents_of', 'steam', 'debian', 'rip_cd', 'architecture', 'aliases', 'better_version', - 'copyright'): + 'copyright', 'engine'): if k in d: setattr(package, k, d[k]) @@ -1803,11 +1809,11 @@ class GameData(object): if package.expansion_for: depends.add(package.expansion_for) - engine = package.debian.get('engine') - assert engine is None or not package.expansion_for, \ - 'An expansion will inherit the engine of the full game' - if engine: - recommends.add(engine) + + if package.engine: + recommends.add(package.engine) + elif not package.expansion_for and self.engine: + recommends.add(self.engine) for other_package in self.packages.values(): if other_package.expansion_for == package.name: suggests.add(other_package.name) @@ -1867,6 +1873,8 @@ class GameData(object): else: long_desc += ' Game: ' + longname + engine = package.engine or self.engine + engine = engine.split('|')[0].strip() if engine: long_desc += '\n .\n' long_desc += ' Intended for use with: ' + engine @@ -2028,7 +2036,7 @@ class GameData(object): engines = set() for package in ready: - engine = package.debian.get('engine') + engine = package.engine or self.engine if not engine: continue engine = engine.split('|')[0].strip() diff --git a/game_data_packager/games/doom_common.py b/game_data_packager/games/doom_common.py index 06cdc8b..3d6b2e1 100644 --- a/game_data_packager/games/doom_common.py +++ b/game_data_packager/games/doom_common.py @@ -2,6 +2,7 @@ # encoding=utf-8 # # Copyright © 2015 Simon McVittie <[email protected]> +# 2015 Alexandre Detiste <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -33,8 +34,6 @@ class WadPackage(GameDataPackage): def __init__(self, name): super(WadPackage, self).__init__(name) - self.engine = None - @property def main_wad(self): for f in self.install: @@ -75,14 +74,21 @@ class DoomGameData(GameData): def __init__(self, shortname, yaml_data, workdir=None): super(DoomGameData, self).__init__(shortname, yaml_data, workdir=workdir) + if self.engine is None: + self.engine = "chocolate-doom | doom-engine" - self.engine = self.yaml.get('doom_engine', 'doom') + package_map = { + 'doom-engine': 'doom', + 'heretic-engine': 'heretic', + 'hexen-engine': 'hexen', + 'doomsday': 'doomsday-compat', + } for package in self.packages.values(): assert package.main_wad is not None - - package.engine = self.yaml['packages'][package.name].get( - 'doom_engine') + engine = package.engine or self.engine + engine = engine.split('|')[-1].strip() + package.program = package_map.get(engine, engine) package.create_desktop_file = self.yaml['packages'][package.name].get( 'create_desktop_file', True) package.overide_fill_docs = self.yaml['packages'][package.name].get( @@ -106,7 +112,7 @@ class DoomGameData(GameData): wad_base = os.path.splitext(package.main_wad)[0] desc = control['Description'] - desc = desc.replace('ENGINE', (package.engine or self.engine)) + desc = desc.replace('ENGINE', package.program) desc = desc.replace('GAME', wad_base) desc = desc.replace('LONG', (package.longname or self.longname)) control['Description'] = desc @@ -175,7 +181,7 @@ class DoomGameData(GameData): entry = desktop['Desktop Entry'] entry['Name'] = package.longname or self.longname entry['GenericName'] = 'First Person Shooter Game' - entry['TryExec'] = engine = package.engine or self.engine + entry['TryExec'] = package.program if package.expansion_for: for f in self.packages[package.expansion_for].install: if f.endswith('.wad'): @@ -187,7 +193,7 @@ class DoomGameData(GameData): + ' -file /usr/share/games/doom/' + main_wad) else: args = '-iwad /usr/share/games/doom/' + main_wad - entry['Exec'] = engine + ' ' + args + entry['Exec'] = package.program + ' ' + args entry['Icon'] = wad_base entry['Terminal'] = 'false' entry['Type'] = 'Application' diff --git a/game_data_packager/games/residualvm_common.py b/game_data_packager/games/residualvm_common.py index dd91991..0aee4e3 100644 --- a/game_data_packager/games/residualvm_common.py +++ b/game_data_packager/games/residualvm_common.py @@ -32,10 +32,8 @@ class ResidualvmGameData(GameData): self.gameid = self.yaml['gameid'] - def modify_control_template(self, control, package, destdir): - if 'engine' not in package.debian: - package.debian['engine'] = 'residualvm' - super(ResidualvmGameData, self).modify_control_template(control, package, destdir) + if self.engine is None: + self.engine = 'residualvm' def fill_extra_files(self, package, destdir): super(ResidualvmGameData, self).fill_extra_files(package, destdir) diff --git a/game_data_packager/games/scummvm_common.py b/game_data_packager/games/scummvm_common.py index 7746607..af59e5f 100644 --- a/game_data_packager/games/scummvm_common.py +++ b/game_data_packager/games/scummvm_common.py @@ -32,10 +32,8 @@ class ScummvmGameData(GameData): self.gameid = self.yaml['gameid'] - def modify_control_template(self, control, package, destdir): - if 'engine' not in package.debian: - package.debian['engine'] = 'scummvm' - super(ScummvmGameData, self).modify_control_template(control, package, destdir) + if self.engine is None: + self.engine = 'scummvm' def fill_extra_files(self, package, destdir): super(ScummvmGameData, self).fill_extra_files(package, destdir) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

