games/jezzball-kazzmir: Added (2d arcade/puzzle game).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2014-05-19 08:35:42 +07:00 committed by Willy Sudiarto Raharjo
parent d1ea67b148
commit 228ee2eef0
10 changed files with 229 additions and 0 deletions

View File

@ -0,0 +1,13 @@
jezzball-kazzmir (2d arcade/puzzle game)
Jezzball is a classic game much like qix wherein you must create walls
and not get hit by the flying balls. If you create enough walls to cover
80% of the screen you goto the next level where you get one extra life
and another ball trying to kill you.
Left click to create a wall.
Right click to change the direction of the mouse.
This is a clone of the original Jezzball, rewritten by Kazzmir aka Jon
Rafkind. This was originally for Windows, and required some minor porting
to get it to play nice on Linux. See README_Slackware.txt for details.

View File

@ -0,0 +1,19 @@
Gameplay changes from the original:
- Included J.R. "Bob" Dobbs and Slackware logo playfields. The Slackware
logo came from http://www.slackware.com/~msimons/slackware/grfx/
and the Dobbs image was scanned from the cover of "The Book of the SubGenius"
and was taken from
http://briarfiles.blogspot.com/2009/11/featured-pipe-smoker-fictional-jr-bob.html
- Only have the game "insult" the player when he dies. The original
code popped up a pretty much constant stream of insults the whole
time, which was *very* distracting and totally pointless.
Porting changes from the original:
- Use /var/games for the high score file, instead of the current directory.
- Use /usr/share for the data files, instead of the current directory.
- Minor compile/linking fixes (see the SlackBuild).

View File

@ -0,0 +1,3 @@
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi

View File

@ -0,0 +1,30 @@
diff -Naur jezzball-1.1/src/main.cpp jezzball-1.1.patched/src/main.cpp
--- jezzball-1.1/src/main.cpp 2007-09-09 18:07:10.000000000 -0400
+++ jezzball-1.1.patched/src/main.cpp 2014-05-12 13:36:14.000000000 -0400
@@ -250,7 +250,7 @@
// sub-bitmap is deleted before parent bitmap which
// coincidentally works out well for us :)
Bitmap sub_work( work, offset_x, offset_y, 600, 460 );
- bool quit = false;
+ bool quit = false, died = false;
speed_counter = 0;
while ( speed_counter < 15 );
speed_counter = 0;
@@ -263,7 +263,8 @@
}
// if ( key[ KEY_R ] ) quit = true;
- if ( show_insults == -1 && rnd( 40 ) == rnd( 40 ) ){
+ if ( show_insults == -1 && died ) {
+ died = false;
show_insults = 60;
insult = rnd( num_insults );
// insult_x = rnd( 200 ) + 100;
@@ -284,6 +285,7 @@
for ( int q = 0; q < 5; q++ )
if ( game->runGame( &mouse, offset_x, offset_y ) ){
player->incLives( -1 );
+ died = true;
redraw_name = true;
}
speed_counter--;

View File

@ -0,0 +1,126 @@
#!/bin/sh
# Slackware build script for jezzball-kazzmir
# Written by B. Watson (yalhcru@gmail.com)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# Source is mirrored on my site only because the "cloud" download link isn't
# stable (random-looking hostnames). Homepage is the allegro.cc game depot
# entry for this game, since the original homepage is defunct.
PRGNAM=jezzball-kazzmir
VERSION=${VERSION:-1.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
SRCNAM=jezzball
# load game data from here, rather than current dir
DATADIR=/usr/share/games/$PRGNAM/
# save high scores here, rather than current dir
SCOREDIR=/var/games/$PRGNAM
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 .
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 {} \;
sed -i 's,\./data\|data/,'"$DATADIR"',' src/main.cpp
sed -i 's,score\.jzb,'$SCOREDIR'/&,' src/score.cpp
# link fix, plus use our cflags
sed -i -e "s,-O2,$SLKCFLAGS," -e 's,jpgal,jpgalleg,' SConstruct
# fix globbing
sed -i 's,FA_ARCH,FA_ALL,' src/main.cpp
# NULL not defined
sed -i '1i#include <string.h>' src/region.cpp
# Don't spew cute quotations constantly. Game should only insult you
# when you *die*. I know the Slackware philosophy is not to change anything
# unless absolutely required to make the software functional, but to me
# the unpatched game *is* nonfunctional because it's too annoying to play.
patch -p1 < $CWD/insults.diff
scons
# manual install
mkdir -p $PKG/usr/games $PKG/$DATADIR
install -s -m0755 $SRCNAM $PKG/usr/games/$PRGNAM
cp -a data/* $PKG/$DATADIR
# Just for fun, we'll include some Slack-themed playfields. If you
# really wanted to, you could include your own PNG playfields in
# the pics/ dir. The game will scale them down if they're too
# large, but won't scale them up if they're tiny, so make sure
# they're not too small (or the game becomes unplayable).
tar xvf $CWD/jezzball-kazzmir-extra-backgrounds.tar.gz
install -oroot -groot -m0644 pics/*.png $PKG/$DATADIR/pics
# world-writable scorefile. The dir it's in is only writable by root,
# the game can't create the scorefile if it's missing, so we have to
# include the stock one in the package (which the game can and will
# modify as needed).
mkdir -p $PKG/$SCOREDIR
zcat $CWD/score.jzb.gz > $PKG/$SCOREDIR/score.jzb
chmod 666 $PKG/$SCOREDIR/score.jzb
# icon made with the gimp, from a screenshot of the game
mkdir -p $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
# .desktop file written for this build
mkdir -p $PKG/usr/share/applications
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/README_Slackware.txt > $PKG/usr/doc/$PRGNAM-$VERSION/README_Slackware.txt
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
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.${PKGTYPE:-tgz}

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Name=Jezzball
Comment=Jezzball Clone by Kazzmir
Exec=/usr/games/jezzball-kazzmir
Type=Application
Icon=jezzball-kazzmir
Categories=Game;ArcadeGame;

View File

@ -0,0 +1,12 @@
PRGNAM="jezzball-kazzmir"
VERSION="1.1"
HOMEPAGE="https://www.allegro.cc/depot/Jezzball"
DOWNLOAD="http://urchlay.naptime.net/~urchlay/src/jezzball-1.1.tar.gz \
http://urchlay.naptime.net/~urchlay/src/jezzball-kazzmir-extra-backgrounds.tar.gz"
MD5SUM="72b25d7f8529c01164583b72870df0ea \
8c9df20f4bc04865ee6e8300ce18990b"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="scons allegro"
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

View 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 ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
jezzball-kazzmir: jezzball-kazzmir (2d arcade/puzzle game)
jezzball-kazzmir:
jezzball-kazzmir: Jezzball is a classic game much like qix wherein you must create
jezzball-kazzmir: walls and not get hit by the flying balls. If you create enough
jezzball-kazzmir: walls to cover 80% of the screen you goto the next level where you
jezzball-kazzmir: get one extra life and another ball trying to kill you.
jezzball-kazzmir:
jezzball-kazzmir: Left click to create a wall.
jezzball-kazzmir: Right click to change the direction of the mouse.
jezzball-kazzmir:
jezzball-kazzmir: