games/njam: Added (The most addictive free pacman-like game)

Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
This commit is contained in:
Petar Petrov 2012-12-09 11:00:38 -05:00 committed by dsomero
parent 16abb0a3ab
commit d884fa6c2e
10 changed files with 364 additions and 0 deletions

16
games/njam/README Normal file
View file

@ -0,0 +1,16 @@
NjAM is a full-featured cross-platform pacman like game.
Features:
- Single and multiplayer mode (local or via network)
- Duel mode (players compete against each other to get more points.
Similar to bingo games where the other players help add to the
jackpot winnings)
- Cooperative mode (players try to finish as many levels as they can)
- Great music and sound effects
- As addictive as Bingo online and other games like blackjack, poker,
or roulette - but free!
- Ported to many operating systems including Windows and Linux
- Customizable level skins
- Many different levels
- Integrated level editor to add your own levels
- Open Source (GPL Licence)

3
games/njam/doinst.sh Normal file
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

110
games/njam/njam.SlackBuild Normal file
View file

@ -0,0 +1,110 @@
#!/bin/sh
# Slackware build script for njam
# Copyright 2012 Petar Petrov, ppetrov@paju.oulu.fi
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=njam
VERSION=${VERSION:-1.25}
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
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION-src
tar xvf $CWD/${PRGNAM}_${VERSION}.orig.tar.gz
cd $PRGNAM-$VERSION-src
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 {} \;
# Thanks to Debian for the patches (and the source tarball!)
patch -p1 < $CWD/patches/changed_hiscore_name.patch
patch -p1 < $CWD/patches/drop_gda.patch
patch -p1 < $CWD/patches/gcc_46.patch
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--build=$ARCH-slackware-linux
make
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 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 \
ChangeLog COPYING INSTALL PREINSTALL README TODO html \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/usr/share/{applications,pixmaps}
cp $CWD/$PRGNAM.desktop $PKG/usr/share/applications
cp $CWD/$PRGNAM.png $PKG/usr/share/pixmaps
# Clean up
rm -rf $PKG/usr/share/$PRGNAM/{html,README}
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}

7
games/njam/njam.desktop Normal file
View file

@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=NjAM
Exec=njam -w
Icon=njam.png
Categories=Game;
Terminal=false

10
games/njam/njam.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="njam"
VERSION="1.25"
HOMEPAGE="http://njam.sourceforge.net/"
DOWNLOAD="http://ftp.de.debian.org/debian/pool/main/n/njam/njam_1.25.orig.tar.gz"
MD5SUM="231fda022d309e1ef4a0d993ca693462"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Petar Petrov"
EMAIL="ppetrov@paju.oulu.fi"

BIN
games/njam/njam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -0,0 +1,68 @@
#! /bin/sh -e
## changed_hiscore_name.dpatch by Anibal Avelar <aavelar@cofradia.org>
##
## DP: apply patch to change the hiscore name
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
if [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch $patch_opts -p1 < $0;;
-unpatch) patch $patch_opts -p1 -R < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argum
ent"
exit 1;;
esac
exit 0
diff -bBdNrw -U5 njam-1.25/src/njam.cpp njam-1.25.modif/src/njam.cpp
--- njam-1.25/src/njam.cpp 2005-12-13 05:56:43.000000000 -0600
+++ njam-1.25.modif/src/njam.cpp 2008-05-12 11:59:46.694847801 -0500
@@ -235,11 +235,11 @@
fprintf(fp, "I=%s\n", m_GameOptions.ServerIP);
fclose(fp);
}
// format: NAME#POINTS#LEVEL#
- fp = fopen("hiscore.dat", "w+");
+ fp = fopen("njam-hiscore.dat", "w+");
if (fp)
{
for (int i=0; i<10; i++)
fprintf(fp, "%s#%d#%d#\n", TopTenScores[i].name, TopTenScores[i].points, TopTenScores[i].level);
fclose(fp);
@@ -647,11 +647,11 @@
}
else
LogFile("Failed to open conf file.\n");
// create default hiscore
- LogFile("Creating default hiscore.\n");
+ LogFile("Creating default njam-hiscore.\n");
char DefaultNames[10][10] = {
"MILAN", "TANJA",
"DULIO", "DJORDJE",
"CLAUS", "ENZO",
"JOLAN", "JAAP",
@@ -663,14 +663,14 @@
sprintf(TopTenScores[i].name, "%s\0", DefaultNames[i]);
}
// load hiscore from file (if any)
// format: NAME#POINTS#LEVEL#
- fp = fopen("hiscore.dat", "r");
+ fp = fopen("njam-hiscore.dat", "r");
if (fp)
{
- LogFile("Reading hiscore.dat\n");
+ LogFile("Reading njam-hiscore.dat\n");
char buff[40];
int number = 0;
while (!feof(fp) && number < 10)
{
fgets(buff, 40, fp);

View file

@ -0,0 +1,103 @@
#!/bin/sh /usr/share/dpatch/dpatch-run
Description: drop DGA support, fixing SDL_VIDEODRIVER parsing issues
Author: Hans de Goede <hdegoede@redhat.com>
Last-Update: 2011-12-13
Index: njam-1.25/src/njam.cpp
===================================================================
--- njam-1.25.orig/src/njam.cpp 2012-07-04 16:46:32.000000000 +0000
+++ njam-1.25/src/njam.cpp 2012-07-04 16:49:29.000000000 +0000
@@ -52,7 +52,6 @@
{
bool Fullscreen = true;
bool SWSurface = true;
- bool UseDGA = false;
if (argc > 1)
{
for (int i=1; i<argc; i++)
@@ -64,8 +63,6 @@
Fullscreen = false; // use njam.exe -w windowed mode
else if (argv[i][1] == 'h')
SWSurface = false; // use -h for hardware surfaces
- else if (argv[i][1] == 'd')
- UseDGA = true;
else
ok = false;
}
@@ -77,7 +74,6 @@
printf("Usage: njam -[w|d|h]\n\n");
printf("-w start in Windowed mode (as opposed to fullscreen).\n");;
printf("-h use Hardware surfaces (faster, doesn't work well with all graphic cards).\n");
- printf("-d use DGA driver on Linux, (much faster, but must run as root).\n");
return 1;
}
}
@@ -106,7 +102,7 @@
#endif
NjamEngine Engine;
- if (!Engine.Init(Fullscreen, SWSurface, UseDGA))
+ if (!Engine.Init(Fullscreen, SWSurface))
{
LogFile("Failed.\n");
return 1;
@@ -159,12 +155,6 @@
//-----------------------------------------------------------------------------
NjamEngine::~NjamEngine()
{
-#ifdef __linux__
- char bufsdl[30];
- sprintf(bufsdl, "SDL_VIDEODRIVER=%s", linux_sdl_driver);
- putenv(bufsdl);
-#endif
-
if (script_file)
fclose(script_file);
@@ -333,24 +323,8 @@
}
}
//-----------------------------------------------------------------------------
-bool NjamEngine::Init(bool Fullscreen, bool SoftwareSurface, bool UseDGA)
+bool NjamEngine::Init(bool Fullscreen, bool SoftwareSurface)
{
-#ifdef __linux__
- sprintf(linux_sdl_driver, "x11\0");
- char *driver_name = getenv("SDL_VIDEODRIVER");
- if (driver_name)
- sprintf(linux_sdl_driver, "%s\0", driver_name);
-
- if (UseDGA)
- {
- printf("You must be root to run DGA\nType ./njam -? for help\n");
- putenv("SDL_VIDEODRIVER=dga");
- }
-#else
- if (UseDGA)
- printf("Parameter -d is ignored for non-Linux platforms.\n");
-#endif
-
LogFile("Initializing SDL: VIDEO & AUDIO...", true);
if ( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO|SDL_INIT_TIMER ) < 0 )
{
Index: njam-1.25/src/njam.h
===================================================================
--- njam-1.25.orig/src/njam.h 2005-12-13 11:56:43.000000000 +0000
+++ njam-1.25/src/njam.h 2012-07-04 16:50:13.000000000 +0000
@@ -111,7 +111,6 @@
bool m_SDL; // whether SDL is initialized or not
bool m_AudioAvailable; // so we know wheter to try to play music/sfx
- char linux_sdl_driver[10];
SDL_Surface *m_Screen;
tGameOptions m_GameOptions;
@@ -201,7 +200,7 @@
public:
NjamEngine();
~NjamEngine();
- bool Init(bool,bool,bool); // initialize everything except for networking
+ bool Init(bool,bool); // initialize everything except for networking
void Start(); // start the music and main menu loop
};
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,28 @@
#!/bin/sh /usr/share/dpatch/dpatch-run
Description: gcc4.5 and later are more restrictive with c++ function calls,
this trivial patch fixes build failures with -fpermissive
Author: Andreas Moog <amoog@ubuntu.com>
Last-Update: 2011-07-15
=== modified file 'src/njamedit.cpp'
--- a/src/njamedit.cpp 2006-07-27 23:15:50 +0000
+++ b/src/njamedit.cpp 2011-07-15 20:01:54 +0000
@@ -114,7 +114,7 @@
key = SDLK_a;
else if (CheckForSave())
{
- LogFile::LogFile("Saving maps");
+ LogFile("Saving maps");
m_Maps.Save(filename);
level_type_was = level_type;
changed = false;
@@ -131,7 +131,7 @@
char types[2][5] = { "COOP", "DUEL" };
sprintf(buf, "levels/%s.%s\0", filename, types[level_type]);
sprintf(filename, "%s\0", buf);
- LogFile::LogFile("Saving maps");
+ LogFile("Saving maps");
m_Maps.Save(filename);
level_type_was = level_type;
changed = false;

19
games/njam/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 ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
njam: njam (The most addictive free pacman-like game)
njam:
njam: Njam is a full-featured cross-platform pac-man like game.
njam:
njam:
njam:
njam:
njam:
njam:
njam:
njam: