mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-18 22:06:04 +01:00
games/maelstrom: Added to 12.2 repository
This commit is contained in:
parent
fc32ee2069
commit
1a3537baa7
10 changed files with 590 additions and 0 deletions
227
games/maelstrom/Maelstrom.6
Normal file
227
games/maelstrom/Maelstrom.6
Normal file
|
@ -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.
|
15
games/maelstrom/README
Normal file
15
games/maelstrom/README
Normal file
|
@ -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.
|
14
games/maelstrom/compile_fix.diff
Normal file
14
games/maelstrom/compile_fix.diff
Normal file
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
3
games/maelstrom/doinst.sh
Normal file
3
games/maelstrom/doinst.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
if [ -x /usr/bin/update-desktop-database ]; then
|
||||
/usr/bin/update-desktop-database -q usr/share/applications &> /dev/null
|
||||
fi
|
35
games/maelstrom/install_dirs.diff
Normal file
35
games/maelstrom/install_dirs.diff
Normal file
|
@ -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
|
||||
|
93
games/maelstrom/maelstrom.SlackBuild
Normal file
93
games/maelstrom/maelstrom.SlackBuild
Normal file
|
@ -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
|
8
games/maelstrom/maelstrom.desktop
Normal file
8
games/maelstrom/maelstrom.desktop
Normal file
|
@ -0,0 +1,8 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Maelstrom
|
||||
Exec=Maelstrom
|
||||
Type=Application
|
||||
Icon=maelstrom
|
||||
GenericName=Maelstrom
|
||||
Categories=Game;Arcade;
|
8
games/maelstrom/maelstrom.info
Normal file
8
games/maelstrom/maelstrom.info
Normal file
|
@ -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"
|
168
games/maelstrom/maelstrom_addon_package.pl
Normal file
168
games/maelstrom/maelstrom_addon_package.pl
Normal file
|
@ -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);
|
||||
|
19
games/maelstrom/slack-desc
Normal file
19
games/maelstrom/slack-desc
Normal file
|
@ -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:
|
Loading…
Reference in a new issue