games/ucr: Added (Ultima Classics Revisited)

Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
This commit is contained in:
B. Watson 2011-12-20 10:39:17 -02:00 committed by Robby Workman
parent c5ee6ec05f
commit 98e800a9a5
8 changed files with 270 additions and 0 deletions

31
games/ucr/README Normal file
View File

@ -0,0 +1,31 @@
Ultima Classics Revisited (UCR) is an attempt to offer modern
OS-compatible engines for the first six Ultima games. The only completely
playable game for UCR is Akalabeth (aka Ultima 0), and there is a partial
implementation of an Ultima 1 engine.
UCR doesn't require any extra data files to play Akalabeth. If you want
to check out UCR's partial Ultima 1 engine, you'll need the game data
files from Ultima 1 (place them in /usr/share/ucr/games/u1).
Akalabeth is played entirely with the keyboard. Since the keyboard
controls aren't documented anywhere in the UCR source (other than by
reading the C++ code), here's a list of keystrokes:
S - Show character stats (hit points, equipment, etc)
P - Pause/Resume
Space - Pass
F11 - Toggle original/enhanced graphics
F12 - Enable/disable music
Outdoors:
Up/Down/Left/Right Arrows - Move North/South/East/West
E - Enter Town or Castle
In Dungeons:
Up - Move Forward
Down - Turn Around
Left/Right - Turn Left/Right
A - Attack
E - Climb Ladder or Descend into Hole
UCR doesn't support saving the game like the PC version of Akalabeth does.

19
games/ucr/doinst.sh Normal file
View File

@ -0,0 +1,19 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/ucr/ucr.conf.new
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi

19
games/ucr/slack-desc Normal file
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 ':'.
|-----handy-ruler------------------------------------------------------|
ucr: ucr (Ultima Classics Revisited)
ucr:
ucr: Ultima Classics Revisited (UCR) is an attempt to offer modern
ucr: OS-compatible engines for the first six Ultima games. The only
ucr: completely playable game for UCR is Akalabeth (aka Ultima 0), and
ucr: there is a partial implementation of an Ultima 1 engine.
ucr:
ucr:
ucr:
ucr:
ucr:

99
games/ucr/ucr.6 Normal file
View File

@ -0,0 +1,99 @@
.TH ucr 6 "28 Oct 2011" "0.1.2" "Ultima Classics Revisited"
.SH NAME
\fBucr\fR \- A modern reimplementation of the classic Ultima role\-playing games.
.SH SYNOPSIS
.B ucr
.SH DESCRIPTION
.B ucr
(Ultima Classics Revisited)
is a remake of the computer games Akalabeth (aka "Ultima 0") and
Ultima 1.
.PP
.B ucr
accepts no command\-line arguments.
.PP
The current version of
.B ucr
contains a complete rewrite of Akalabeth, which is fully playable, and
a partial engine for Ultima I (not fully playable). To use the Ultima I
engine, you will need the data files from the original PC release of
Ultima I (place them in \fI/usr/share/ucr/games/u1\fR).
.PP
Although Akalabeth is fully playable, it has no support for saving the
game or loading saved games (unlike the original PC release of Akalabeth).
Ultima I, while not fully playable, does support saving/loading the game.
.SH KEYBOARD CONTROLS
Only the keyboard controls for Akalabeth are documented here.
.PP
Akalabeth
is played entirely with the keyboard. To make choices from menus,
press the first letter of the menu choice (e.g. \fBF\fR to buy Food
at the Adventure Shop menu).
.PP
During gameplay, the following keystrokes are supported:
.TP
.B S
Show character stats (hit points, equipment, etc)
.TP
.B P
Pause/Resume
.TP
.B Space
Pass
.TP
.B F11
Toggle original/enhanced graphics
.TP
.B
F12
Enable/disable music
.SS Outdoors
.TP
.B Up/Down/Left/Right Arrows
Move North/South/East/West
.TP
.B E
Enter Town or Castle
.SS In Dungeons
.TP
.B
Up
Move Forward
.TP
.B
Down
Turn Around
.TP
.B
Left/Right
Turn Left/Right
.TP
.B
A
Attack
.TP
.B
E
Climb Ladder or Descend into Hole
.SH FILES
.TP
.B /etc/ucr/ucr.conf
Config file for \fBucr\fR. Sets the paths to the game data, the screen
size, and a few other variables. Not well documented, but fairly self\-explanatory.
The settings for u2 through u6 don't do anything, as these games were never
implemented in \fBucr\fR.
.SH AUTHORS
.B Akalabeth
and the
.B
Ultima
games were created by Richard Garriott, AKA Lord British.
.PP
.B ucr
written by Gregory Maculo <prmths@emptyspaces.net>
.PP
Man page created by B. Watson, for the SlackBuilds.org
project. Permission hereby granted to use this man page anywhere, for any purpose.

84
games/ucr/ucr.SlackBuild Normal file
View File

@ -0,0 +1,84 @@
#!/bin/sh
# Slackware build script for ucr
# Written by B. Watson (yalhcru@gmail.com)
PRGNAM=ucr
VERSION=${VERSION:-0.1.2}
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}
# Nothing in /usr/lib(64) for this package.
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"
else
SLKCFLAGS="-O2"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION-beta
tar xvf $CWD/$PRGNAM-$VERSION-beta.tar.gz
cd $PRGNAM-$VERSION-beta
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# configure is not an autoconf script (doesn't accept arguments at all).
./configure
sed -i "s/-O3/$SLKCFLAGS/" Makefile
make
# No DESTDIR support either, manual install.
mkdir -p $PKG/usr/bin $PKG/etc/$PRGNAM
install -s -m0755 $PRGNAM $PKG/usr/bin
mkdir -p $PKG/usr/share/$PRGNAM
cp -a data pixmaps $PKG/usr/share/$PRGNAM
sed "s,/usr/games/$PRGNAM/,/usr/share/$PRGNAM/," etc/$PRGNAM.conf \
> $PKG/etc/$PRGNAM/$PRGNAM.conf.new
# PNG icon made by removing blue background from icon.xpm.
# .desktop file written for this package.
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
# man page written for this build. Needed because the docs don't list
# the keyboard commands for playing the game!
mkdir -p $PKG/usr/man/man6
gzip -9c $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README CHANGELOG TODO $PKG/usr/doc/$PRGNAM-$VERSION
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}

8
games/ucr/ucr.desktop Normal file
View File

@ -0,0 +1,8 @@
[Desktop Entry]
Name=UCR
Comment=Ultima Classic Revisited
Exec=ucr
Icon=ucr
Terminal=false
Type=Application
Categories=Game;RolePlaying;

10
games/ucr/ucr.info Normal file
View File

@ -0,0 +1,10 @@
PRGNAM="ucr"
VERSION="0.1.2"
HOMEPAGE="http://www.ultimaaiera.com/orphanage/ultima-classics-revisited/"
DOWNLOAD="http://www.ultimaaiera.com/wp-content/files/ucr/ucr-0.1.2-beta.tar.gz"
DOWNLOAD_x86_64=""
MD5SUM="f384c2ee22fbc937c3f7a02fe9b26dac"
MD5SUM_x86_64=""
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"
APPROVED="Niels Horn"

BIN
games/ucr/ucr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB