summaryrefslogtreecommitdiffstats
path: root/games/zaz
diff options
context:
space:
mode:
Diffstat (limited to 'games/zaz')
-rw-r--r--games/zaz/README10
-rw-r--r--games/zaz/disable_sdl_dga_mouse.diff14
-rw-r--r--games/zaz/doinst.sh6
-rw-r--r--games/zaz/slack-desc6
-rw-r--r--games/zaz/zaz.6143
-rw-r--r--games/zaz/zaz.SlackBuild58
-rw-r--r--games/zaz/zaz.rst122
7 files changed, 333 insertions, 26 deletions
diff --git a/games/zaz/README b/games/zaz/README
index a0395fcc44..dc81a3eb2b 100644
--- a/games/zaz/README
+++ b/games/zaz/README
@@ -1,7 +1,9 @@
+zaz (action/puzzle game)
+
Zaz is a game where the player has to get rid of incoming balls by
arranging them in triplets. The idea of the game is loosely based on
-games like Luxor, Zuma and Puzzle Bobble. The twists that make Zaz
-stand out from other games of this type are that the balls have to
-be picked from the path (insted of being randomly assigned for the
-player) and that the player's "vehicle" is also attached to a path
+games like Luxor, Zuma, Puzz Loop, and Puzzle Bobble. The twists that
+make Zaz stand out from other games of this type are that the balls
+have to be picked from the path (insted of being randomly assigned for
+the player) and that the player's "vehicle" is also attached to a path
which is different from level to level.
diff --git a/games/zaz/disable_sdl_dga_mouse.diff b/games/zaz/disable_sdl_dga_mouse.diff
new file mode 100644
index 0000000000..2d380e4db6
--- /dev/null
+++ b/games/zaz/disable_sdl_dga_mouse.diff
@@ -0,0 +1,14 @@
+diff -Naur zaz-1.0.0/src/main.cpp zaz-1.0.0.patched/src/main.cpp
+--- zaz-1.0.0/src/main.cpp 2010-08-23 18:20:22.000000000 -0400
++++ zaz-1.0.0.patched/src/main.cpp 2023-07-03 18:52:07.366865483 -0400
+@@ -60,6 +60,10 @@
+ char *editorPhilename = 0;
+ char *testplayPhilename = 0;
+
++ if(!getenv("SDL_VIDEO_X11_DGAMOUSE")) {
++ putenv("SDL_VIDEO_X11_DGAMOUSE=0");
++ }
++
+ resReset = false;
+
+ if (argc > 1)
diff --git a/games/zaz/doinst.sh b/games/zaz/doinst.sh
index 5fb28930db..65c7e2eeb9 100644
--- a/games/zaz/doinst.sh
+++ b/games/zaz/doinst.sh
@@ -1,3 +1,9 @@
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
diff --git a/games/zaz/slack-desc b/games/zaz/slack-desc
index cab03718a0..4ece80f05b 100644
--- a/games/zaz/slack-desc
+++ b/games/zaz/slack-desc
@@ -6,10 +6,10 @@
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
-zaz: zaz (puzzle game)
+zaz: zaz (action/puzzle game)
zaz:
-zaz: Zaz ain't Z*** is a puzzle game where the player has to get rid of
-zaz: incoming balls by arranging them in triplets Because hackers too need
+zaz: Zaz Ain't Z*** is a puzzle game where the player has to get rid of
+zaz: incoming balls by arranging them in triplets. Because hackers too need
zaz: to play with balls
zaz:
zaz: Homepage: http://zaz.sourceforge.net
diff --git a/games/zaz/zaz.6 b/games/zaz/zaz.6
new file mode 100644
index 0000000000..478043df4b
--- /dev/null
+++ b/games/zaz/zaz.6
@@ -0,0 +1,143 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "ZAZ" 6 "2023-07-03" "1.0.0" "SlackBuilds.org"
+.SH NAME
+zaz \- action/puzzle game
+.\" RST source for zaz(1) man page. Convert with:
+.
+.\" rst2man.py zaz.rst > zaz.6
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+zaz [\fB\-d\fP \fIdirectory\fP] [\fB\-e\fP [\fI\-level\fP]] [\fB\-p\fP \fIlevel\fP] [\fB\-t\fP]
+.SH DESCRIPTION
+.sp
+Zaz is a game where the player has to get rid of incoming balls by
+arranging them in triplets. The idea of the game is loosely based on
+games like Luxor, Zuma, Puzz Loop, and Puzzle Bobble. The twists that
+make Zaz stand out from other games of this type are that the balls
+have to be picked from the path (insted of being randomly assigned for
+the player) and that the player\(aqs "vehicle" is also attached to a path
+which is different from level to level.
+.sp
+The game can be controlled with either the mouse or the keyboard (see
+\fBCONTROLS\fP, below).
+.SH OPTIONS
+.sp
+These options are used for editing levels and testing them. For normal
+gameplay, \fBzaz\fP should be run without options.
+.INDENT 0.0
+.TP
+.B \-d \fIdirectory\fP
+Use \fIdirectory\fP for game data location. The default is \fI/usr/share/zaz\fP\&.
+.TP
+.B \-e [\fIlevel\fP]
+Start up in level editing mode. If \fBlevel\fP is given, it will be loaded
+into the editor, otherwise \fIdefault\fP is used. \fBlevel\fP shoould be the name
+of the \fI\&.lvl\fP file, minus the \fI\&.lvl\fP extension.
+Must be run from within the data directory (or a copy of it).
+.TP
+.B \-p \fIlevel\fP
+Test\-play a level (possibly created with \fB\-e\fP).
+Must be run from within the data directory (or a copy of it).
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-t
+This is supposed to run the built\-in self\-tests. However, all it seems to
+do is segfault.
+.UNINDENT
+.SH CONTROLS
+.INDENT 0.0
+.TP
+.B Movement
+Mouse X axis or keyboard left/right arrows.
+.TP
+.B Pick or Fire Ball
+Mouse button 1 (normally left), keyboard Space, Enter, or down arrow.
+.TP
+.B Speedup (advance puzzle)
+Mouse button 3 (normally right), or keyboard up arrow.
+.UNINDENT
+.sp
+There is no way to change these keyboard/mouse control mappings. If
+the keyboard movement doesn\(aqt seem to work properly (arrow keys jump
+the player all the way left or right), try moving the mouse slightly.
+.SH FILES
+.sp
+\fB$HOME/.zaz/\fP contains:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.TP
+.B \fBsettings\fP
+Saved settings. Human\-readable, but normally edited within the game,
+via the \fIOptions\fP menu.
+.TP
+.B \fBhiscores\fP
+Self\-explanatory.
+.TP
+.B \fB*.profile\fP
+Used to keep track of which levels have been unlocked.
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.\" ENVIRONMENT
+.
+.\" ===========
+.
+.\" EXIT STATUS
+.
+.\" ===========
+.
+.\" BUGS
+.
+.\" ====
+.
+.\" EXAMPLES
+.
+.\" ========
+.
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/zaz\-1.0.0/COPYING for license information.
+.SH AUTHORS
+.sp
+zaz was written by Remigiusz Dybka, with music by paniQ.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+The zaz homepage: \fI\%http://zaz.sourceforge.net\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/games/zaz/zaz.SlackBuild b/games/zaz/zaz.SlackBuild
index b6ff797b11..66bbc814d1 100644
--- a/games/zaz/zaz.SlackBuild
+++ b/games/zaz/zaz.SlackBuild
@@ -22,11 +22,19 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 20230701 bkw: Modified by SlackBuilds.org, BUILD=2:
+# - move binary to /usr/games.
+# - new-style (prescaled) icons.
+# - write and add man page.
+# - patch for left-handed mouse users (disable SDL DGA mouse by default).
+# - remove junk from doc dir.
+# All this stuff is being done with the approval of the maintainer (MLanden).
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=zaz
VERSION=${VERSION:-1.0.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -38,9 +46,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -50,7 +55,6 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
@@ -74,31 +78,47 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
+
+# 20230703 bkw: SDL 1.x apps don't always play nice with left-handed
+# mouse users. This makes SDL respect the button mappings set with
+# xmodmap. It doesn't cause any harm for righties, either. Thanks
+# to redruM on libera ##slackware for pointing this out.
+patch -p1 < $CWD/disable_sdl_dga_mouse.diff
+
+# 20230703 bkw: In case someone doesn't have /usr/games in $PATH:
+sed -i '/Exec=/s,zaz,/usr/games/zaz,' extra/zaz.desktop
LDFLAGS="-lvorbis" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
+ --bindir=/usr/games \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
make
-make install DESTDIR=$PKG
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING ChangeLog INSTALL NEWS README \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+make install-strip DESTDIR=$PKG
+
+mkdir -p $PKG/usr/man/man6
+gzip -9c < $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
+
+# 20230703 bkw: prescaled new-style icons.
+for px in 16 22 32 48 64; do
+ size="${px}x${px}"
+ dir=$PKG/usr/share/icons/hicolor/$size/apps
+ mkdir -p $dir
+ convert -resize $size extra/zaz.xpm $dir/zaz.png
+done
+
+# 20230701 bkw: docs already installed. INSTALL is generic GNU "how to
+# run configure" and NEWS is a 0-byte placeholder, don't need.
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+rm $PKGDOC/{INSTALL,NEWS}
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/games/zaz/zaz.rst b/games/zaz/zaz.rst
new file mode 100644
index 0000000000..36b2ac1ca3
--- /dev/null
+++ b/games/zaz/zaz.rst
@@ -0,0 +1,122 @@
+.. RST source for zaz(1) man page. Convert with:
+.. rst2man.py zaz.rst > zaz.6
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 1.0.0
+.. |date| date::
+
+===
+zaz
+===
+
+------------------
+action/puzzle game
+------------------
+
+:Manual section: 6
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+zaz [**-d** *directory*] [**-e** [*-level*]] [**-p** *level*] [**-t**]
+
+DESCRIPTION
+===========
+
+Zaz is a game where the player has to get rid of incoming balls by
+arranging them in triplets. The idea of the game is loosely based on
+games like Luxor, Zuma, Puzz Loop, and Puzzle Bobble. The twists that
+make Zaz stand out from other games of this type are that the balls
+have to be picked from the path (insted of being randomly assigned for
+the player) and that the player's "vehicle" is also attached to a path
+which is different from level to level.
+
+The game can be controlled with either the mouse or the keyboard (see
+**CONTROLS**, below).
+
+OPTIONS
+=======
+
+These options are used for editing levels and testing them. For normal
+gameplay, **zaz** should be run without options.
+
+-d *directory*
+ Use *directory* for game data location. The default is */usr/share/zaz*.
+
+-e [*level*]
+ Start up in level editing mode. If **level** is given, it will be loaded
+ into the editor, otherwise *default* is used. **level** shoould be the name
+ of the *.lvl* file, minus the *.lvl* extension.
+ Must be run from within the data directory (or a copy of it).
+
+-p *level*
+ Test-play a level (possibly created with **-e**).
+ Must be run from within the data directory (or a copy of it).
+
+-t
+ This is supposed to run the built-in self-tests. However, all it seems to
+ do is segfault.
+
+CONTROLS
+========
+
+Movement
+ Mouse X axis or keyboard left/right arrows.
+
+Pick or Fire Ball
+ Mouse button 1 (normally left), keyboard Space, Enter, or down arrow.
+
+Speedup (advance puzzle)
+ Mouse button 3 (normally right), or keyboard up arrow.
+
+There is no way to change these keyboard/mouse control mappings. If
+the keyboard movement doesn't seem to work properly (arrow keys jump
+the player all the way left or right), try moving the mouse slightly.
+
+FILES
+=====
+
+**$HOME/.zaz/** contains:
+
+ **settings**
+ Saved settings. Human-readable, but normally edited within the game,
+ via the *Options* menu.
+
+ **hiscores**
+ Self-explanatory.
+
+ **\*.profile**
+ Used to keep track of which levels have been unlocked.
+
+.. ENVIRONMENT
+.. ===========
+
+.. EXIT STATUS
+.. ===========
+
+.. BUGS
+.. ====
+
+.. EXAMPLES
+.. ========
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/zaz-|version|/COPYING for license information.
+
+AUTHORS
+=======
+
+zaz was written by Remigiusz Dybka, with music by paniQ.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+The zaz homepage: http://zaz.sourceforge.net