Add hedgewars
Turn-based strategy artillery game similiar to Worms.
This commit is contained in:
parent
7034163832
commit
48664fb7b2
69
pkgs/games/hedgewars/default.nix
Normal file
69
pkgs/games/hedgewars/default.nix
Normal file
|
@ -0,0 +1,69 @@
|
|||
{ SDL_image, SDL_ttf, SDL_net, fpc, qt4 , ghc, ffmpeg, freeglut, network, vector
|
||||
, stdenv, makeWrapper, fetchurl, cmake, pkgconfig, lua5_1, SDL, SDL_mixer
|
||||
, utf8String, bytestringShow, hslogger, random, dataenc, zlib, libpng, mesa
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.9.20.5";
|
||||
name = "hedgewars-${version}";
|
||||
src = fetchurl {
|
||||
url = "http://download.gna.org/hedgewars/hedgewars-src-${version}.tar.bz2";
|
||||
sha256 = "1k5dq14s9pshrqlz8vnix237bcapfif4k3rc4yj4cmwdx1pqkl56";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
SDL_ttf SDL_net network vector utf8String bytestringShow hslogger random
|
||||
cmake pkgconfig lua5_1 SDL SDL_mixer SDL_image fpc qt4 ghc ffmpeg freeglut
|
||||
dataenc makeWrapper
|
||||
];
|
||||
|
||||
patches = [ ./fix-ghc-7.8-build-failure.diff ];
|
||||
|
||||
preBuild = ''
|
||||
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${SDL_image}/lib
|
||||
-rpath ${SDL_mixer}/lib
|
||||
-rpath ${SDL_net}/lib
|
||||
-rpath ${SDL_ttf}/lib
|
||||
-rpath ${SDL}/lib
|
||||
-rpath ${libpng}/lib
|
||||
-rpath ${lua5_1}/lib
|
||||
-rpath ${mesa}/lib
|
||||
-rpath ${zlib}/lib
|
||||
"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/hwengine --prefix LD_LIBRARY_PATH : $LD_LIBRARY_PATH:${mesa}/lib/:${freeglut}/lib
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Turn-based strategy artillery game similiar to Worms";
|
||||
homepage = http://hedgewars.org/;
|
||||
license = licenses.gpl2;
|
||||
longDescription = ''
|
||||
Each player controls a team of several hedgehogs. During the course of
|
||||
the game, players take turns with one of their hedgehogs. They then use
|
||||
whatever tools and weapons are available to attack and kill the
|
||||
opponents' hedgehogs, thereby winning the game. Hedgehogs may move
|
||||
around the terrain in a variety of ways, normally by walking and jumping
|
||||
but also by using particular tools such as the "Rope" or "Parachute", to
|
||||
move to otherwise inaccessible areas. Each turn is time-limited to
|
||||
ensure that players do not hold up the game with excessive thinking or
|
||||
moving.
|
||||
|
||||
A large variety of tools and weapons are available for players during
|
||||
the game: Grenade, Cluster Bomb, Bazooka, UFO, Homing Bee, Shotgun,
|
||||
Desert Eagle, Fire Punch, Baseball Bat, Dynamite, Mine, Rope, Pneumatic
|
||||
pick, Parachute. Most weapons, when used, cause explosions that deform
|
||||
the terrain, removing circular chunks. The landscape is an island
|
||||
floating on a body of water, or a restricted cave with water at the
|
||||
bottom. A hedgehog dies when it enters the water (either by falling off
|
||||
the island, or through a hole in the bottom of it), it is thrown off
|
||||
either side of the arena or when its health is reduced, typically from
|
||||
contact with explosions, to zero (the damage dealt to the attacked
|
||||
hedgehog or hedgehogs after a player's or CPU turn is shown only when
|
||||
all movement on the battlefield has ceased).'';
|
||||
maintainers = maintainers.kragniz;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
16
pkgs/games/hedgewars/fix-ghc-7.8-build-failure.diff
Normal file
16
pkgs/games/hedgewars/fix-ghc-7.8-build-failure.diff
Normal file
|
@ -0,0 +1,16 @@
|
|||
## fix-ghc-7.8-build-failure.diff [diff]
|
||||
diff --git a/gameServer/Actions.hs b/gameServer/Actions.hs
|
||||
index 2cebe4f..355ee26 100644
|
||||
--- a/gameServer/Actions.hs
|
||||
+++ b/gameServer/Actions.hs
|
||||
@@ -562,7 +562,7 @@ processAction (AddClient cl) = do
|
||||
si <- gets serverInfo
|
||||
newClId <- io $ do
|
||||
ci <- addClient rnc cl
|
||||
- _ <- Exception.mask (forkIO . clientRecvLoop (clientSocket cl) (coreChan si) (sendChan cl) ci)
|
||||
+ _ <- Exception.mask (\x -> forkIO $ clientRecvLoop (clientSocket cl) (coreChan si) (sendChan cl) ci x)
|
||||
|
||||
infoM "Clients" (show ci ++ ": New client. Time: " ++ show (connectTime cl))
|
||||
|
||||
|
||||
|
|
@ -11000,6 +11000,12 @@ let
|
|||
|
||||
gtypist = callPackage ../games/gtypist { };
|
||||
|
||||
hedgewars = callPackage ../games/hedgewars {
|
||||
inherit (haskellPackages) ghc network vector utf8String bytestringShow
|
||||
random hslogger dataenc;
|
||||
SDL = SDL_pulseaudio;
|
||||
};
|
||||
|
||||
hexen = callPackage ../games/hexen { };
|
||||
|
||||
icbm3d = callPackage ../games/icbm3d { };
|
||||
|
|
Loading…
Reference in a new issue