[game-data-packager] 07/07: doom-common: automatic IWAD/PWAD & virtual engine wording
Alexandre Detiste
detiste-guest at moszumanska.debian.org
Thu Mar 26 15:15:16 UTC 2015
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 73444f8996723013457e44f930ce7fb912003f76
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date: Thu Mar 26 16:13:42 2015 +0100
doom-common: automatic IWAD/PWAD & virtual engine wording
move interresting bits of doom-common.py & *.control.in
into core, remove boilerplate
---
data/chexquest-data.control.in | 7 -------
data/chexquest2-data.control.in | 8 --------
data/doom-common.control.in | 4 ----
data/doom2-nerve-wad.control.in | 5 -----
data/hacx-data.control.in | 8 --------
data/heretic.yaml | 2 ++
data/hexen-deathkings-data.control.in | 5 -----
data/hexen-demo-data.control.in | 4 ----
data/hexen.control.in | 5 -----
data/hexen.yaml | 4 ++++
data/strife-data.control.in | 7 -------
game_data_packager/__init__.py | 28 +++++++++++++++++++++++-----
game_data_packager/games/doom_common.py | 21 +--------------------
13 files changed, 30 insertions(+), 78 deletions(-)
diff --git a/data/chexquest-data.control.in b/data/chexquest-data.control.in
deleted file mode 100644
index 64b445f..0000000
--- a/data/chexquest-data.control.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Description: IWAD from Digital Café's Chex Quest computer game
- This package was built using game-data-packager. It contains
- proprietary game data and must not be redistributed.
- .
- This package contains the IWAD from Digital Café's Chex Quest.
- .
- You need a doom engine to play this game.
diff --git a/data/chexquest2-data.control.in b/data/chexquest2-data.control.in
deleted file mode 100644
index 87ccf11..0000000
--- a/data/chexquest2-data.control.in
+++ /dev/null
@@ -1,8 +0,0 @@
-Description: PWAD from Digital Café's Chex Quest 2 computer game
- This package was built using game-data-packager. It contains
- proprietary game data and must not be redistributed.
- .
- This package contains the PWAD from Digital Café's
- Chex Quest 2.
- .
- You need a doom engine to play this game.
diff --git a/data/doom-common.control.in b/data/doom-common.control.in
deleted file mode 100644
index a302f77..0000000
--- a/data/doom-common.control.in
+++ /dev/null
@@ -1,4 +0,0 @@
-Description: IWAD from ID Software's "LONG" computer game
- Doom requires both a doom-engine and a doom-wad to play. This package
- contains the IWAD from ID Software's game "LONG"
- and was generated using the "game-data-packager" program.
diff --git a/data/doom2-nerve-wad.control.in b/data/doom2-nerve-wad.control.in
deleted file mode 100644
index ede9030..0000000
--- a/data/doom2-nerve-wad.control.in
+++ /dev/null
@@ -1,5 +0,0 @@
-Description: Doom 2: No Rest for the Living PWAD
- Doom 2 requires both a doom-engine and data files to play.
- This package contains the data files from the Doom 2 expansion
- "No Rest for the Living", and was generated using the
- "game-data-packager" program.
diff --git a/data/hacx-data.control.in b/data/hacx-data.control.in
deleted file mode 100644
index ca56376..0000000
--- a/data/hacx-data.control.in
+++ /dev/null
@@ -1,8 +0,0 @@
-Description: IWAD from Banjo Software's HacX computer game
- This package was built using game-data-packager. It contains
- proprietary game data and must not be redistributed.
- .
- This package contains the IWAD from Banjo Software's
- HacX: Twitch 'n Kill
- .
- You need a doom engine to play this game.
diff --git a/data/heretic.yaml b/data/heretic.yaml
index a419092..9545293 100644
--- a/data/heretic.yaml
+++ b/data/heretic.yaml
@@ -21,6 +21,8 @@ help_text: |
packages:
heretic-wad:
+ debian:
+ breaks: chocolate-doom (<< 2)
steam:
id: 2390
path: "common/Heretic Shadow of the Serpent Riders"
diff --git a/data/hexen-deathkings-data.control.in b/data/hexen-deathkings-data.control.in
deleted file mode 100644
index e7172b6..0000000
--- a/data/hexen-deathkings-data.control.in
+++ /dev/null
@@ -1,5 +0,0 @@
-Breaks: chocolate-doom (<< 2)
-Description: Hexen: Deathkings of the Dark Citadel PWAD
- Hexen requires both a hexen-engine and data files to play. This package
- contains the data files from the Hexen expansion "Deathkings of the
- Dark Citadel", and was generated using the "game-data-packager" program.
diff --git a/data/hexen-demo-data.control.in b/data/hexen-demo-data.control.in
deleted file mode 100644
index 63dd20b..0000000
--- a/data/hexen-demo-data.control.in
+++ /dev/null
@@ -1,4 +0,0 @@
-Description: IWAD from Raven Software's Hexen computer game
- Hexen requires both a hexen-engine and a hexen-wad to play. This package
- contains the IWAD from the demo version of Raven Software's game Hexen
- and was generated using the "game-data-packager" program.
diff --git a/data/hexen.control.in b/data/hexen.control.in
deleted file mode 100644
index e65d2f9..0000000
--- a/data/hexen.control.in
+++ /dev/null
@@ -1,5 +0,0 @@
-Breaks: chocolate-doom (<< 2)
-Description: IWAD from Raven Software's hexen computer game
- Hexen requires both a hexen-engine and a hexen-wad to play. This package
- contains the IWAD from Raven Software's game "GAME"
- and was generated using the "game-data-packager" program.
diff --git a/data/hexen.yaml b/data/hexen.yaml
index 95e01ad..5b3e84b 100644
--- a/data/hexen.yaml
+++ b/data/hexen.yaml
@@ -23,6 +23,8 @@ engine: "chocolate-doom | hexen-engine"
packages:
hexen-wad:
+ debian:
+ breaks: chocolate-doom (<< 2)
steam:
id: 2360
path: "common/Hexen"
@@ -32,6 +34,8 @@ packages:
hexen-deathkings-data:
longname: "Hexen: Deathkings of the Dark Citadel"
+ debian:
+ breaks: chocolate-doom (<< 2)
steam:
id: 2370
path: "common/Hexen Deathkings of the Dark Citadel"
diff --git a/data/strife-data.control.in b/data/strife-data.control.in
deleted file mode 100644
index a178fef..0000000
--- a/data/strife-data.control.in
+++ /dev/null
@@ -1,7 +0,0 @@
-Description: IWAD from Rogue Entertainment's Strife computer game
- This package was built using game-data-packager. It contains
- proprietary game data and must not be redistributed.
- .
- This package contains the IWAD from Rogue Entertainment's Strife.
- .
- You need a doom engine to play this game.
diff --git a/game_data_packager/__init__.py b/game_data_packager/__init__.py
index d63ae95..7778842 100644
--- a/game_data_packager/__init__.py
+++ b/game_data_packager/__init__.py
@@ -330,6 +330,10 @@ class GameDataPackage(object):
# The optional marketing name of this version
self.longname = None
+ # This word is used to build package description
+ # 'data' / 'PWAD' / 'IWAD'
+ self.data_type = 'data'
+
# This optional value will overide the game global copyright
self.copyright = None
@@ -1837,6 +1841,7 @@ class GameData(object):
provides = read_control_set(package, control, 'Provides')
replaces = read_control_set(package, control, 'Replaces')
conflicts = read_control_set(package, control, 'Conflicts')
+ breaks = read_control_set(package, control, 'Breaks')
if package.expansion_for:
depends.add(package.expansion_for)
@@ -1865,6 +1870,8 @@ class GameData(object):
control['Replaces'] = ', '.join(sorted(replaces))
if conflicts:
control['Conflicts'] = ', '.join(sorted(conflicts))
+ if breaks:
+ control['Breaks'] = ', '.join(sorted(breaks))
version = package.debian.get('version')
if 'Version' in control:
@@ -1880,7 +1887,7 @@ class GameData(object):
if 'Description' not in control:
longname = package.longname or self.longname
- short_desc = 'data for ' + longname
+ short_desc = package.data_type + ' for "' + longname + '" game'
long_desc = ' This package was built using game-data-packager. It contains\n'
long_desc += ' proprietary game data and must not be redistributed.\n'
@@ -1892,15 +1899,26 @@ class GameData(object):
if package.expansion_for:
game_name = self.packages[package.expansion_for].longname or self.longname
long_desc += ' Game: ' + game_name + '\n'
- long_desc += ' Expansion: ' + longname
+ long_desc += ' Expansion: ' + longname + '\n'
else:
- long_desc += ' Game: ' + longname
+ long_desc += ' Game: ' + longname + '\n'
+
+ copyright = package.copyright or self.copyright
+ long_desc += ' Published by: ' + copyright[7:] + '\n .\n'
engine = package.engine or self.engine
if engine:
+ if '|' in engine:
+ virtual = engine.split('|')[-1].strip()
+ has_virtual = (virtual.split('-')[-1] == 'engine')
+ else:
+ has_virtual = False
engine = engine.split('|')[0].split('(')[0].strip()
- long_desc += '\n .\n'
- long_desc += ' Intended for use with: ' + engine
+ if has_virtual:
+ long_desc += ' Intended for use with some ' + virtual + ',\n'
+ long_desc += ' such as for example: ' + engine
+ else:
+ long_desc += ' Intended for use with: ' + engine
control['Description'] = short_desc + '\n' + long_desc
diff --git a/game_data_packager/games/doom_common.py b/game_data_packager/games/doom_common.py
index 66e2c2c..bc4dd29 100644
--- a/game_data_packager/games/doom_common.py
+++ b/game_data_packager/games/doom_common.py
@@ -94,30 +94,11 @@ class DoomGameData(GameData):
package.program = package_map.get(engine, engine)
package.create_desktop_file = self.data['packages'][package.name].get(
'create_desktop_file', True)
+ package.data_type = 'PWAD' if package.expansion_for else 'IWAD'
def construct_package(self, binary):
return WadPackage(binary)
- def get_control_template(self, package):
- for name in (package.name, self.shortname, 'doom-common'):
- path = os.path.join(DATADIR, '%s.control.in' % name)
- if os.path.exists(path):
- return path
- else:
- raise AssertionError('doom-common.control.in should exist')
-
- def modify_control_template(self, control, package, destdir):
- super(DoomGameData, self).modify_control_template(control, package,
- destdir)
-
- wad_base = os.path.splitext(package.main_wad)[0]
-
- desc = control['Description']
- desc = desc.replace('ENGINE', package.program)
- desc = desc.replace('GAME', wad_base)
- desc = desc.replace('LONG', (package.longname or self.longname))
- control['Description'] = desc
-
def fill_extra_files(self, package, destdir):
super(DoomGameData, self).fill_extra_files(package, destdir)
if not package.create_desktop_file:
--
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