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