Package: jumpnbump Version: 1.50+dfsg1-2 Severity: wishlist Tags: patch Currently, jumpnbump-menu searchs levels only in '/usr/share/games/jumpnbump'. Only root can add levels in this directory, so normal users can't use jumpnbump-menu and add new levels by themself. In the last case, they need to use a terminal.
This patch modifies the behaviour of jumpnbump-menu to: - display and play levels found in '~/.jumpnnbump/levels/' (and the '/usr/share/games/jumpnbump' as before); - search for file with extension '.dat' or '.DAT' because several levels found on the web are in uppercase. The diff for the manpage provide info about this new feature. -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/1 CPU core) Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages jumpnbump depends on: ii imagemagick 8:6.6.0.4-2.2 image manipulation programs ii libc6 2.11.2-6+squeeze1 Embedded GNU C Library: Shared lib ii libsdl-mixer1.2 1.2.8-6+b1 mixer library for Simple DirectMed ii libsdl-net1.2 1.2.7-2 network library for Simple DirectM ii libsdl1.2debian 1.2.14-6.1 Simple DirectMedia Layer ii python 2.6.6-3+squeeze1 interactive high-level object-orie ii python-glade2 2.17.0-4 GTK+ bindings: Glade support ii python-gtk2 2.17.0-4 Python bindings for the GTK+ widge jumpnbump recommends no packages. Versions of packages jumpnbump suggests: ii jumpnbump-levels 20091107 cute multiplayer platform game wit -- no debconf information -- Stéphane
--- /usr/games/jumpnbump-menu 2009-03-03 04:52:17.000000000 +0100 +++ ./jump_modif 2010-11-07 19:43:02.000000000 +0100 @@ -13,6 +13,7 @@ import gtk.gdk import gobject import os +import posixpath import tempfile import shutil import gettext @@ -25,24 +26,32 @@ def populate_treeview(): levels = [] - for file in os.listdir (RESOURCE_DIR): - if (file.endswith ('.dat')): - levels.append (file) - - levels.sort() + add_levels (levels, RESOURCE_DIR) + add_levels (levels, posixpath.expanduser("~/.jumpnbump/levels")) + + levels = sorted(levels, key=lambda level: level[0]) COLUMN_LEVEL = 0 - store = gtk.ListStore (gobject.TYPE_STRING) + COLUMN_DIR = 1 + store = gtk.ListStore (gobject.TYPE_STRING, gobject.TYPE_STRING) for level in levels: iter = store.append() - store.set (iter, COLUMN_LEVEL, level) + store.set (iter, COLUMN_LEVEL, level[0], COLUMN_DIR, level[1]) treeview.set_model (store) renderer = gtk.CellRendererText() treeview.append_column (gtk.TreeViewColumn (_('Level'), renderer, text=COLUMN_LEVEL)) +def add_levels(levels, dir): + try: + for file in os.listdir (dir): + if (file.endswith ('.dat') or file.endswith ('.DAT')): + levels.append ((file, dir)) + except OSError, err: + print("%s not found (%s)." % (dir, str(err))) + def standalone_mode (widget): disable_enable_level (1) disable_enable_server (0) @@ -85,7 +94,8 @@ def level_changed (widget): model, iter = treeview.get_selection().get_selected() global choosen_level - choosen_level = '%s/%s' % (RESOURCE_DIR, model.get_value (iter, 0)) + choosen_level = '%s/%s' % (model.get_value (iter, 1), model.get_value (iter, 0)) + unpackdir = None try: unpackdir = tempfile.mkdtemp ("", "jumpnbump-menu-")
--- jumpnbump-menu.6 2010-11-07 19:35:10.000000000 +0100 +++ modif.jumpnbump-menu.6 2010-11-07 19:31:59.000000000 +0100 @@ -84,7 +84,11 @@ bunniesinspace - gravity is lower, you can jump higher lordoftheflies - the flies are attracted bloodisthickerthanwater - water turns to blood -.SH LEVELS +.SH ADD LEVELS +You can add levels in ~/.jumpnbump/levels directory (create it if necessary). +To see the added level, you have to restart jumpnbump-menu. The extension name +for level is ".dat". +.SH CREATE LEVELS There are two programs in /usr/lib/jumpnbump to help you make your own levels: pack and unpack. .IP pack