[game-data-packager] 02/02: add support for Zork Zero using zoom-player engine

Alexandre Detiste detiste-guest at moszumanska.debian.org
Fri Feb 5 09:13:46 UTC 2016


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 595c35f17f61803108bde01120a2b8ca9f0b1410
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Fri Feb 5 10:13:23 2016 +0100

    add support for Zork Zero using zoom-player engine
---
 data/zork.yaml                           | 55 +++++++++++++++++++++++++++-----
 debian/changelog                         |  1 +
 debian/control                           |  2 +-
 game_data_packager/games/z_code.py       |  7 ++--
 game_data_packager/packaging/__init__.py |  9 ++++++
 game_data_packager/packaging/deb.py      |  1 +
 6 files changed, 63 insertions(+), 12 deletions(-)

diff --git a/data/zork.yaml b/data/zork.yaml
index 086edee..59a4579 100644
--- a/data/zork.yaml
+++ b/data/zork.yaml
@@ -11,9 +11,25 @@ help_text:
   The "Zork Anthology" also includes "Beyond Zork"
   and adds "Planetfall" as a bonus.
 
-  Zork Zero is not supported.
+  Zork Zero only works with the zoom-player engine.
 
 packages:
+  zork0-data:
+    engine: zoom-player
+            # (>= 1.1.5~dfsg-2)
+    longname: "Zork Zero: The Revenge of Megaboz"
+    copyright: © 1988 Infocom
+    gog:
+      url: the_zork_anthology
+      game: zork_zero_the_revenge_of_megaboz
+    install_to: $assets/zork
+    install:
+    # assert package.z_file happens before group expansion
+    - zork0.z6
+    - zork zero assets
+    doc:
+    - manual.pdf?zork0
+
   zork1-data:
     longname: "Zork I: The Great Underground Empire"
     copyright: © 1980 Infocom
@@ -77,6 +93,8 @@ packages:
     - manual.pdf?planetfall
 
 files:
+  zork0.z6:
+    look_for: [zork0.dat,zork0.z6,zork0.zip]
   zork1.z3:
     alternatives:
     - zork1.z3_zip
@@ -144,6 +162,19 @@ files:
     - planetfa.z3
     # Zork Zero
 
+  setup_zork_zero_2.1.0.16.exe:
+    unpack:
+      format: innoextract
+      unpack:
+      - zork0.zip
+      - zork0.cg1
+      - zork0.eg1
+      - zork0.mg1
+      - manual.pdf
+    provides:
+    - zork zero assets
+    - manual.pdf?zork0
+
   setup_zork_2.1.0.17.exe:
     unpack:
       format: innoextract
@@ -194,6 +225,20 @@ files:
     - planetfa.z3
     - manual.pdf?planetfall
 
+groups:
+  zork zero assets: |
+    244507    8693505c6363b319613a5711186bf179 zork0.cg1
+    333654    115f4f4e62a433f64ef7068899b182b4 zork0.eg1
+    226436    24eb829c3532f3f8d160777d8358fa07 zork0.mg1
+    300032    d83c343d71ac4c03661488148876b370 zork0.z6
+  archives: |
+    17856984  4b77b0618147cc9ffb1a0d382d4ea338 setup_zork_zero_2.1.0.16.exe
+    17799208  6bd42788d696f154ce363830909259d3 setup_zork_2.1.0.17.exe
+    18861008  2ea2cf45bb6cf76b0365567e81f27aab setup_zork2_2.1.0.17.exe
+    18497752  1526e9be21bf47412dc053f4097e25bd setup_zork3_2.1.0.17.exe
+    17162896  8a5168d7340af5b1b4df708f467785c0 setup_beyond_zork_2.1.0.17.exe
+    18511960  f359f4b824a7694817e852ada102f6e7 setup_planetfall_2.1.0.17.exe
+
 size_and_md5: |
   # version provided at http://www.infocom-if.org/
   92160     b732a93a6244ddd92a9b9a3e3a46c687 zork1.z3_zip
@@ -217,6 +262,7 @@ size_and_md5: |
   # Zork Zero is not supported by a free engine
 
   # GOG.com packaging
+  459328    b8dad88f4c336a3f633dc6419ed0f1a5 manual.pdf?zork0
   1129552   ca6103f50b9aa55e6f533ef3d48bff79 manual.pdf?zork1
   2213995   a46d98231c69c2b8e88f6e51dc432bed manual.pdf?zork2
   1885475   97b4e20b13f49e14309a5c99bbd1c2f3 manual.pdf?zork3
@@ -228,13 +274,6 @@ size_and_md5: |
   # ?       f24d4c64e0b01d81beae7a5d788bbd9b setup_zork_anthology.exe
   9752528   86edb0fefd9c4fbe62f51b869e2a1bec setup_zork_anthology.exe
 
-  # new splitted archives
-  17799208  6bd42788d696f154ce363830909259d3 setup_zork_2.1.0.17.exe
-  18861008  2ea2cf45bb6cf76b0365567e81f27aab setup_zork2_2.1.0.17.exe
-  18497752  1526e9be21bf47412dc053f4097e25bd setup_zork3_2.1.0.17.exe
-  17162896  8a5168d7340af5b1b4df708f467785c0 setup_beyond_zork_2.1.0.17.exe
-  18511960  f359f4b824a7694817e852ada102f6e7 setup_planetfall_2.1.0.17.exe
-
 sha1sums: |
   e05781fc76d87985ceb23a62c0c71843147a3099  zork1.z3_alt
   70b9e127569a66ac8dc005395e9deccc52e84056  zork1.z3_zip
diff --git a/debian/changelog b/debian/changelog
index 3b26054..dfd7775 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ game-data-packager (45) UNRELEASED; urgency=medium
   * New game support:
     - The Secret of Monkey Island [adetiste]
     - Mortville Manor [adetiste]
+    - Zork Zero [adetiste]
   * Support for new languages and versions:
     - Indiana Jones and the Last Crusade (English CD) [skitt]
   * Enhancements and bug fixes:
diff --git a/debian/control b/debian/control
index 9a2eedc..768baf9 100644
--- a/debian/control
+++ b/debian/control
@@ -215,5 +215,5 @@ Description: Installer for game data files
   * Wolfenstein 3D, Spear of Destiny and Return to Castle Wolfenstein
   * Wolfenstein: Enemy Territory
   * X-COM: UFO Defense
-  * Zork 1, 2 and 3, Beyond Zork and Return to Zork
+  * Zork 1, 2 and 3, Beyond Zork, Zork Zero and Return to Zork
   * Zork Grand Inquisitor and Zork Nemesis
diff --git a/game_data_packager/games/z_code.py b/game_data_packager/games/z_code.py
index c20c71f..3cf00d2 100644
--- a/game_data_packager/games/z_code.py
+++ b/game_data_packager/games/z_code.py
@@ -69,7 +69,8 @@ class ZCodeTask(PackagingTask):
             entry['Categories'] = 'Game;'
             entry['GenericName'] = self.game.genre + ' Game'
             entry['Name'] = package.longname or self.game.longname
-            engine = 'zcode-interpreter'
+            engine = package.engine or 'zcode-interpreter'
+            engine = self.packaging.tool_for_package(engine)
             entry['Terminal'] = 'false'
             if FORMAT != 'deb':
                 # keep engines sorted by relevance
@@ -80,6 +81,7 @@ class ZCodeTask(PackagingTask):
                                              ('fizmo', True),
                                              ('fizmo-cursenw', True),
                                              ('fizmo-console', True),
+                                             ('zoom', False),
                                              ('zjip', True)):
                     if which(try_engine):
                         engine = try_engine
@@ -110,14 +112,13 @@ class ZCodeTask(PackagingTask):
                     'usr/share/applications/%s.desktop %s'
                      % (package.name, engine))
 
-            engine = which(engine)
             bindir = os.path.join(destdir, self.packaging.BINDIR)
             mkdir_p(bindir)
             pgm = package.name[0:len(package.name)-len('-data')]
             path = os.path.join(bindir, pgm)
             with open(path, 'w') as f:
                  f.write('#!/bin/sh\n')
-                 f.write('test -x %s && exec %s $@ %s\n' %
+                 f.write('command -v %s > /dev/null 2>&1 && exec %s $@ %s\n' %
                          (engine, engine, arg))
                  f.write('echo "You need to install some Z-Code interpreter '
                                'like Frotz or Gargoyle to play this game"\n')
diff --git a/game_data_packager/packaging/__init__.py b/game_data_packager/packaging/__init__.py
index df07f88..df7ca25 100644
--- a/game_data_packager/packaging/__init__.py
+++ b/game_data_packager/packaging/__init__.py
@@ -184,6 +184,15 @@ class PackagingSystem(metaclass=ABCMeta):
         """
         return self.PACKAGE_MAP.get(tool, tool)
 
+    def tool_for_package(self, package):
+        """Given a package name, return the corresponding
+        main/unique executable in this packaging system.
+        """
+        for k,v in self.PACKAGE_MAP.items():
+            if v == package:
+                return k
+        return package
+
 def get_native_packaging_system():
     # lazy import when actually needed
     from ..version import (FORMAT)
diff --git a/game_data_packager/packaging/deb.py b/game_data_packager/packaging/deb.py
index 63f7e0d..4c3c661 100644
--- a/game_data_packager/packaging/deb.py
+++ b/game_data_packager/packaging/deb.py
@@ -42,6 +42,7 @@ class DebPackaging(PackagingSystem):
                   'lha': 'lhasa',
                   '7z': 'p7zip-full',
                   'unrar-nonfree': 'unrar',
+                  'zoom': 'zoom-player',
                   }
     RENAME_PACKAGES = {
             'libSDL-1.2.so.0': 'libsdl1.2debian',

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list