[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