summaryrefslogtreecommitdiffstats
path: root/games/maelstrom
diff options
context:
space:
mode:
author B. Watson <yalhcru@gmail.com>2010-05-12 23:29:26 +0200
committer David Somero <xgizzmo@slackbuilds.org>2010-05-12 23:29:26 +0200
commit1a3537baa7360d5394d9dc1feced739581c40447 (patch)
tree87ecf8bb438ec87ea06da7980f0a78dde8489d95 /games/maelstrom
parentfc32ee20694957df640a5960a4a7fd58efca770b (diff)
downloadslackbuilds-1a3537baa7360d5394d9dc1feced739581c40447.tar.gz
slackbuilds-1a3537baa7360d5394d9dc1feced739581c40447.tar.xz
games/maelstrom: Added to 12.2 repository
Diffstat (limited to 'games/maelstrom')
-rw-r--r--games/maelstrom/Maelstrom.6227
-rw-r--r--games/maelstrom/README15
-rw-r--r--games/maelstrom/compile_fix.diff14
-rw-r--r--games/maelstrom/doinst.sh3
-rw-r--r--games/maelstrom/install_dirs.diff35
-rw-r--r--games/maelstrom/maelstrom.SlackBuild93
-rw-r--r--games/maelstrom/maelstrom.desktop8
-rw-r--r--games/maelstrom/maelstrom.info8
-rw-r--r--games/maelstrom/maelstrom_addon_package.pl168
-rw-r--r--games/maelstrom/slack-desc19
10 files changed, 590 insertions, 0 deletions
diff --git a/games/maelstrom/Maelstrom.6 b/games/maelstrom/Maelstrom.6
new file mode 100644
index 0000000000..dc60bbebd6
--- /dev/null
+++ b/games/maelstrom/Maelstrom.6
@@ -0,0 +1,227 @@
+.TH MAELSTROM "6" "April 2009" "Ambrosia Software" "Games"
+.SH NAME
+Maelstrom \- Enhanced Asteroids\-like game
+.SH SYNOPSIS
+.B Maelstrom
+[\-netscores] \-printscores
+.P
+.B Maelstrom
+[options]
+.P
+.B Maelstrom\-netd
+.br
+\fI(see NETWORKING, below, for a description of Maelstrom\-netd)\fR
+.SH DESCRIPTION
+Maelstrom is a game based on Asteroids, but with several gameplay enhancements:
+.P
+\- High\-resolution color graphics
+.br
+\- Digital audio
+.br
+\- Powerups
+.br
+\- Networked multiplayer/deathmatch mode (up to 3 players)
+.br
+\- World\-wide high score server
+.P
+Game storyline:
+.br
+You pilot your ship through the dreaded "Maelstrom" asteroid belt \-\-
+suddenly your best friend thrusts towards you and fires, directly at your
+cockpit. You raise your shields just in time, and the battle is joined.
+.P
+The deadliest stretch of space known to mankind has just gotten
+deadlier. Everywhere massive asteroids jostle for a chance to crush your
+ship, and deadly shinobi fighter patrols pursue you across the asteroid
+belt. But the deadliest of them all is your sister ship, assigned to
+you on patrol. The pilot, trained by your own Navy, battle hardened by
+months in the Maelstrom, is equipped with a twin of your own ship and
+intimate knowledge of your tactics.
+.P
+The lovely Stratocaster R&R facility never sounded so good, but as you
+fire full thrusters to dodge the latest barrage you begin to think you'll
+never get home...
+.SH OPTIONS
+.TP
+\fB\-fullscreen\fR
+Run Maelstrom in full\-screen mode. You may also press Alt\-Enter
+while Maelstrom is running, to toggle full\-screen.
+.TP
+\fB\-gamma\fR [0\-8]
+Set the gamma correction
+.TP
+\fB\-volume\fR [0\-8]
+Set the sound volume
+.TP
+\fB\-netscores\fR
+Use the world\-wide network score server
+.TP
+\fB\-player\fR N[@host][:port]
+Designate player N (at host and/or port). N must be an integer, 1 to 3.
+.TP
+\fB\-server\fR N@host[:port]
+Play with N players using server at host. N must be an integer, 1 to 3.
+.TP
+\fB\-deathmatch\fR [N]
+Play deathmatch to N frags (default = 8)
+.SH CONTROLS
+The game may be played with either the keyboard or a joystick.
+The game controls may be remapped by pressing C at the main menu. The
+default keyboard controls are:
+.TP
+\fBTab\fR, \fBJoystick Button 1\fR
+Fire
+.TP
+\fBUp Arrow\fR, \fBJoystick Up\fR
+Thrust
+.TP
+\fBSpace\fR, \fBJoystick Button 2\fR
+Shield
+.TP
+\fBRight Arrow\fR, \fBJoystick Right\fR
+Turn Clockwise
+.TP
+\fBLeft Arrow\fR, \fBJoystick Left\fR
+Turn Counter\-clockwise
+.TP
+\fBP\fR
+Pause
+.TP
+\fBEscape\fR
+Abort Game
+.TP
+\fBAlt\-Enter\fR
+Toggle between fullscreen and windowed modes. This keystroke
+may not be remapped.
+.P
+No special configuration must be done to play with a joystick, provided
+the joystick is supported by the SDL library on your OS.
+There is no way
+to remap the joystick controls.
+.SH NETWORKING
+.SS Netplay Without a Server
+Networking has been tested on Linux, SGI and DEC. It is known to
+work between SGI and DEC systems (cross\-platform), and between systems
+of the same type.
+.P
+Up to three players can play, and the syntax is as follows:
+.P
+(On machine 1)
+.br
+.B
+.nh
+Maelstrom \-player 1 \-player 2@machine2 \-player 3@machine3
+.hy
+.P
+(On machine 2)
+.br
+.B
+.nh
+Maelstrom \-player 1@machine1 \-player 2 \-player 3@machine3
+.hy
+.P
+(On machine 3)
+.br
+.B
+.nh
+Maelstrom \-player 1@machine1 \-player 2@machine2 \-player 3
+.hy
+.SS Netplay With a Server
+You can also use a network address server that handles the difficulties
+of getting all the players and addresses right. The address server is
+installed as \fBMaelstrom\-netd\fR, and if run on say "servhost", the syntax
+for a three player game would be:
+.P
+(On machine A)
+.br
+.B
+.nh
+Maelstrom \-player 1 \-server 3@servhost
+.hy
+.P
+(On machine B)
+.br
+.B
+.nh
+Maelstrom \-player 2 \-server 3@servhost
+.hy
+.P
+(On machine C)
+.br
+.B
+.nh
+Maelstrom \-player 3 \-server 3@servhost
+.hy
+.P
+The address server will let players know if they have conflicting
+player numbers, and will set up the proper addresses for all players.
+It can field multiple games, and can be a "game hub" where a bunch
+of players can get together for romping network games. :)
+.P
+\fBNOTE\fR: Maelstrom-netd will not run correctly on 64\-bit hosts,
+and Maelstrom running on a 64\-bit host cannot successfully play in a
+mutiplayer game with the -server option. Use non\-server networked
+play mode instead.
+.SS Network Ports
+By default, Maelstrom uses UDP ports 44718 to 44720 for networked games,
+where the port number is the player number plus 44717.
+(these may be overridden with the \fI:port\fR syntax, above).
+.P
+\fBMaelstrom-netd\fR listens on TCP port 44717.
+.P
+The global
+high\-score server listens on the host \fBdevolution.com\fR, TCP port 4444.
+.SH ADD\-ONS
+Maelstrom add\-ons consist of replacement sounds, replacement sprites,
+or both. Typically, the add\-on content is distributed as a zip file.
+.P
+There is a collection of Maelstrom add\-on content at
+.br
+.nh
+\fIhttp://www.devolution.com/~slouken/Maelstrom/add-ons.html\fR
+.hy
+.SS Automated Installation (Preferred)
+Use \fBmaelstrom_addon_package.pl\fR to convert the zip
+file to a Slackware package, then use \fBinstallpkg\fR to install the
+add\-on. Run \fBmaelstrom_addon_package.pl \-\-help\fR for more information.
+.SS Manual Installation
+Look within the zip file for files named
+\fI%Maelstrom_Sprites\fR and/or \fI%Maelstrom_Sounds\fR or similar
+(the % may be missing, the _ may be a space, and/or the filenames
+may end with .bin). Copy these files to
+.P
+.nh
+\fB/usr/share/games/Maelstrom/%Maelstrom_Sprites\fR
+.br
+and/or
+.br
+\fB/usr/share/games/Maelstrom/%Maelstrom_Sounds\fR
+.hy
+.P
+\fBNOTE\fR: \fIThe % is important!\fR
+.SS Add\-On Limitations
+There is no way to install more than one add\-on at a time, or to disable
+the installed add\-on without uninstalling it. There is also no way to
+install add\-ons in a user's home directory, or any other place than
+the system\-wide game data directory.
+.SH FILES
+.TP
+\fB/usr/share/games/Maelstrom/\fR
+game data (images, music, sound)
+.TP
+\fB$HOME/.Maelstrom\-data\fR
+per\-user settings and high\-score records
+.SH AUTHORS
+The original version of this game was written for the Macintosh by
+Andrew Welch, of Ambrosia Software. It was ported to Linux and then
+to the Simple DirectMedia Layer library by Sam Lantinga.
+.P
+Man page created by B. Watson for SlackBuilds.org project (but others
+are free to use it)
+.SH COPYRIGHT
+The source code to Maelstrom 3.0 and higher has been released under
+the GNU General Public License which can be found in COPYING.GPL.
+.P
+The artwork and sounds used by Maelstrom are copyright Ambrosia Software
+(http://www.ambrosiasw.com) and may not be redistributed separately from
+the Maelstrom GPL source code.
diff --git a/games/maelstrom/README b/games/maelstrom/README
new file mode 100644
index 0000000000..c3e64cfe97
--- /dev/null
+++ b/games/maelstrom/README
@@ -0,0 +1,15 @@
+Maelstrom is a game similar to Asteroids.
+
+You pilot your ship through the dreaded "Maelstrom" asteroid belt --
+suddenly your best friend thrusts towards you and fires, directly at your
+cockpit. You raise your shields just in time, and the battle is joined.
+The deadliest stretch of space known to mankind has just gotten
+deadlier.
+
+This package also comes with a script to create Slackware packages
+from the Maelstrom add-on graphics/sound files.
+Run 'maelstrom_addon_package.pl --help' for more information.
+
+Note to users of 64-bit and other non-x86 Slackware derivatives: you
+won't be able to host or join multiplayer games that use a server.
+Peer to peer (without the -server argument) multiplayer works OK though.
diff --git a/games/maelstrom/compile_fix.diff b/games/maelstrom/compile_fix.diff
new file mode 100644
index 0000000000..6570dee650
--- /dev/null
+++ b/games/maelstrom/compile_fix.diff
@@ -0,0 +1,14 @@
+diff -Naur Maelstrom-3.0.6/screenlib/SDL_FrameBuf.cpp Maelstrom-3.0.6.patched/screenlib/SDL_FrameBuf.cpp
+--- Maelstrom-3.0.6/screenlib/SDL_FrameBuf.cpp 2001-07-22 17:03:13.000000000 -0400
++++ Maelstrom-3.0.6.patched/screenlib/SDL_FrameBuf.cpp 2009-04-14 14:15:49.000000000 -0400
+@@ -848,8 +848,8 @@
+ for ( i=0; i<dirtymaplen; ++i ) {
+ if ( dirtymap[i] != NULL ) {
+ dirtymap[i] = (SDL_Rect *)(
+- ((int)dirtymap[i]-(int)updatelist) +
+- (int)newlist
++ ((long)dirtymap[i]-(long)updatelist) +
++ (long)newlist
+ );
+ }
+ }
diff --git a/games/maelstrom/doinst.sh b/games/maelstrom/doinst.sh
new file mode 100644
index 0000000000..3857649f50
--- /dev/null
+++ b/games/maelstrom/doinst.sh
@@ -0,0 +1,3 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications &> /dev/null
+fi
diff --git a/games/maelstrom/install_dirs.diff b/games/maelstrom/install_dirs.diff
new file mode 100644
index 0000000000..08c95405b1
--- /dev/null
+++ b/games/maelstrom/install_dirs.diff
@@ -0,0 +1,35 @@
+diff -Naur Maelstrom-3.0.6/Makefile.in Maelstrom-3.0.6.patched/Makefile.in
+--- Maelstrom-3.0.6/Makefile.in 2002-10-20 00:19:42.000000000 -0400
++++ Maelstrom-3.0.6.patched/Makefile.in 2009-04-14 14:45:59.000000000 -0400
+@@ -431,7 +431,7 @@
+
+ # Special install rule for the game
+ install:
+- make install_gamedata target=@GAME_INSTALLDIR@
++ make install_gamedata target=$(DESTDIR)/@GAME_INSTALLDIR@
+
+ install_gamedata:
+ sh mkinstalldirs $(target)/
+@@ -444,8 +444,8 @@
+ chmod 666 $(target)/Maelstrom-Scores
+
+ install_gamedocs:
+- sh mkinstalldirs $(target)/
+- cp -rv README* COPYING* Docs* $(target)/
++ sh mkinstalldirs $(DESTDIR)/$(target)/
++ cp -rv README* COPYING* Docs* $(DESTDIR)/$(target)/
+
+ # Rule to build tar-gzipped distribution package
+ $(PACKAGE)-$(VERSION).tar.gz: dist
+diff -Naur Maelstrom-3.0.6/configure Maelstrom-3.0.6.patched/configure
+--- Maelstrom-3.0.6/configure 2002-10-19 23:43:07.000000000 -0400
++++ Maelstrom-3.0.6.patched/configure 2009-04-14 14:47:33.000000000 -0400
+@@ -3232,7 +3232,7 @@
+ GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
+ ;;
+ *)
+- GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
++ GAME_INSTALLDIR="\$(prefix)/share/games/$PACKAGE"
+ ;;
+ esac
+
diff --git a/games/maelstrom/maelstrom.SlackBuild b/games/maelstrom/maelstrom.SlackBuild
new file mode 100644
index 0000000000..188176ce8f
--- /dev/null
+++ b/games/maelstrom/maelstrom.SlackBuild
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+# Slackware build script for maelstrom
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Note to 64-bit users: Maelstrom-netd and the -server option to Maelstrom
+# do not work correctly. I haven't investigated why. You can still play
+# networked games in non-server mode (see man page). Users of actual
+# Slackware are not affected by this.
+
+PRGNAM=maelstrom
+SRCNAM=Maelstrom
+VERSION=${VERSION:-3.0.6}
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+chmod -R a-s,u+w,go+r-w .
+
+# Fix 64-bit compile issue (not needed on 32-bit, but does no harm)
+patch -p1 < $CWD/compile_fix.diff
+
+# Install game data in /usr/share/games/Maelstrom, not /usr/games/Maelstrom
+# (also make `make install' support DESTDIR properly!)
+patch -p1 < $CWD/install_dirs.diff
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --bindir=/usr/games
+
+make
+make install DESTDIR=$PKG
+strip $PKG/usr/games/*
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+make install_gamedocs target=$PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+# Why does `make install' install this?
+rm -f $PKG/usr/doc/$PRGNAM-$VERSION/Docs/Makefile
+
+install -m0755 -o root -g root $CWD/maelstrom_addon_package.pl $PKG/usr/games
+
+# CLI users would probably prefer to type 'maelstrom', not 'Maelstrom'
+( cd $PKG/usr/games && ln -s $SRCNAM $PRGNAM )
+
+mkdir -p $PKG/usr/share/pixmaps
+( cd $PKG/usr/share/pixmaps
+ ln -s ../games/$SRCNAM/icon.xpm $PRGNAM.xpm
+)
+
+mkdir -p $PKG/usr/share/applications
+cp $CWD/$PRGNAM.desktop $PKG/usr/share/applications
+
+mkdir -p $PKG/usr/man/man6
+gzip -9c $CWD/$SRCNAM.6 > $PKG/usr/man/man6/$SRCNAM.6.gz
+
+( cd $PKG/usr/man/man6
+ ln -s $SRCNAM.6.gz $PRGNAM.6.gz
+ ln -s $SRCNAM.6.gz $SRCNAM-netd.6.gz
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/games/maelstrom/maelstrom.desktop b/games/maelstrom/maelstrom.desktop
new file mode 100644
index 0000000000..1c968032b8
--- /dev/null
+++ b/games/maelstrom/maelstrom.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Maelstrom
+Exec=Maelstrom
+Type=Application
+Icon=maelstrom
+GenericName=Maelstrom
+Categories=Game;Arcade;
diff --git a/games/maelstrom/maelstrom.info b/games/maelstrom/maelstrom.info
new file mode 100644
index 0000000000..38d31bf065
--- /dev/null
+++ b/games/maelstrom/maelstrom.info
@@ -0,0 +1,8 @@
+PRGNAM="maelstrom"
+VERSION="3.0.6"
+HOMEPAGE="http://www.devolution.com/~slouken/Maelstrom/"
+DOWNLOAD="http://www.devolution.com/~slouken/Maelstrom/src/Maelstrom-3.0.6.tar.gz"
+MD5SUM="4fbeb6070eebdf161bd156b083b8804e"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
+APPROVED="dsomero"
diff --git a/games/maelstrom/maelstrom_addon_package.pl b/games/maelstrom/maelstrom_addon_package.pl
new file mode 100644
index 0000000000..7358784c3b
--- /dev/null
+++ b/games/maelstrom/maelstrom_addon_package.pl
@@ -0,0 +1,168 @@
+#!/usr/bin/perl -w
+
+# maelstrom_addon_package.pl - create a Slackware tgz
+# package from a Maelstrom addon zip file, for use with
+# the SlackBuilds.org maelstrom package.
+
+# Beware: only *one* addon may be installed at a time!
+
+# This script is meant to work on a stock Slackware system, so it
+# doesn't use any CPAN modules (which makes the code a bit awkward).
+
+# Author: B. Watson (yalhcru@gmail.com)
+
+# This program is released into the public domain; do as ye list wi' her.
+# Author not responsible for any damages resulting from the use of this
+# program.
+
+use strict;
+use File::Find; # core Perl module, not CPAN
+
+our $GAMEDIR = "/usr/share/games/Maelstrom";
+
+chomp(our $pkgver = `date +%Y%m%d`);
+
+our $pkgname;
+our $spritefile;
+our $soundfile;
+our @text_files;
+
+sub usage() {
+ warn <<EOF;
+Usage: maelstrom_addon_package.pl zipfile [pkgname]
+
+Creates a Slackware tgz package from a Maelstrom addon zip file. The
+zipfile may be either a local file (e.g. "my_addon.zip") or a URL
+(e.g. "http://example.com/foo_addon.zip").
+
+The output file will be located in /tmp, and will be named
+
+ maelstrom_addon_pkgname-YYYYMMDD-noarch-1_mael.tgz
+
+where pkgname is the [pkgname] argument, or derived from the zipfile name if
+no [pkgname] is given on the command line, and YYYYMMDD is the current date.
+
+The resulting .tgz package is suitable for installation with installpkg.
+However, only one Maelstrom addon package may be installed at a time
+(since the addon filenames are the same, the 2nd one would overwrite the
+first one).
+
+Since the script must be able to create files as the root user, you
+must run it with root privileges (e.g. with su or sudo).
+
+You can find a collection of Maelstrom add-on zip files here:
+
+ http://www.devolution.com/~slouken/Maelstrom/add-ons.html
+EOF
+ exit 1;
+}
+
+
+sub make_temp_dir() {
+ my $dir = "/tmp/maelstrom_addon_" . rand(10000000) . $$;
+ system("mkdir -p \"$dir\"") && die "can't create $dir\n";
+ return $dir;
+}
+
+sub extract($$) {
+ my $tmpdir = shift;
+ my $archive = shift;
+ system("cd \"$tmpdir\" && unzip \"$archive\"") &&
+ die "can't extract $archive in $tmpdir\n";
+}
+
+sub cleanup(@) {
+ for my $tmpdir (@_) {
+ system("cd \"$tmpdir\" && rm -rf *");
+ system("cd / && rmdir \"$tmpdir\"");
+ }
+}
+
+sub make_slack_desc($) {
+ my $package_dir = shift;
+
+ mkdir($package_dir . "/install");
+ open my $f, ">$package_dir/install/slack-desc";
+ print $f "$pkgname: Maelstrom add-on sprites/sound package\n";
+ print $f "$pkgname:\n" for (1..10);
+ close $f;
+}
+
+sub copy_files($) {
+ my $package_dir = shift;
+
+ system("mkdir -p $package_dir/usr/share/games/Maelstrom");
+ system("mkdir -p $package_dir/usr/doc/$pkgname-$pkgver");
+
+ system("cp \"$_\" $package_dir/usr/doc/$pkgname-$pkgver") for @text_files;
+
+ if($spritefile) {
+ system("cp \"$spritefile\" " .
+ "$package_dir/usr/share/games/Maelstrom/\%Maelstrom_Sprites");
+ }
+
+ if($soundfile) {
+ system("cp \"$soundfile\" " .
+ "$package_dir/usr/share/games/Maelstrom/\%Maelstrom_Sounds");
+ }
+}
+
+sub wanted {
+ my $file = $File::Find::fullname;
+ if(/\.txt$/i) {
+ warn "Found text file: $file\n";
+ push @text_files, $file;
+ } elsif(/\%?maelstrom.sounds(?:\..*)?$/i) {
+ warn "Found sounds: $file\n";
+ warn "warning: Duplicate sounds file $file\n" if $soundfile;
+ $soundfile = $file;
+ } elsif(/\%?maelstrom.sprites(?:\..*)?$/i) {
+ warn "Found sprites: $file\n";
+ warn "warning: Duplicate sprites file $file\n" if $spritefile;
+ $spritefile = $file;
+ }
+}
+
+# main()
+my $archive = shift || usage();
+usage() if $archive =~ /^--?(?:\?|h(?:elp)?)/i;
+
+die "You must run this script as root\n" if $> != 0;
+
+$pkgname = shift || $archive;
+for($pkgname) {
+ s/.*\///;
+ s/\..*//;
+ s/-/_/g;
+ s/\W//g;
+ y/A-Z/a-z/;
+}
+
+die "Invalid package name\n" unless $pkgname;
+
+$pkgname =~ s/^/maelstrom_addon_/;
+
+if($archive =~ /^(?:ht|f)tps?:\/\//) {
+ system("wget -O /tmp/$pkgname.zip \"$archive\"");
+ $archive = "/tmp/$pkgname.zip";
+}
+
+my $unzip_dir = make_temp_dir();
+
+extract($unzip_dir, $archive);
+find({ wanted => \&wanted, follow => 1 }, $unzip_dir);
+
+unless($spritefile or $soundfile) {
+ die "Can't find any sprites or sounds, aborting\n";
+}
+
+my $package_dir = make_temp_dir();
+
+copy_files($package_dir);
+make_slack_desc($package_dir);
+
+chdir($package_dir) or die $!;
+system("/sbin/makepkg -l y -c y /tmp/$pkgname-$pkgver-noarch-1_mael.tgz");
+chdir("/");
+cleanup($package_dir, $unzip_dir);
+
diff --git a/games/maelstrom/slack-desc b/games/maelstrom/slack-desc
new file mode 100644
index 0000000000..e498ffdae2
--- /dev/null
+++ b/games/maelstrom/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+maelstrom: maelstrom (a game similar to Asteroids)
+maelstrom:
+maelstrom: You pilot your ship through the dreaded "Maelstrom" asteroid belt --
+maelstrom: suddenly your best friend thrusts towards you and fires, directly
+maelstrom: at your cockpit. You raise your shields just in time, and the battle
+maelstrom: is joined. The deadliest stretch of space known to mankind has just
+maelstrom: gotten deadlier.
+maelstrom:
+maelstrom:
+maelstrom:
+maelstrom: