mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
commit
0868feeb3d
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))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -11005,6 +11005,12 @@ let
|
|||||||
|
|
||||||
gtypist = callPackage ../games/gtypist { };
|
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 { };
|
hexen = callPackage ../games/hexen { };
|
||||||
|
|
||||||
icbm3d = callPackage ../games/icbm3d { };
|
icbm3d = callPackage ../games/icbm3d { };
|
||||||
|
Loading…
Reference in New Issue
Block a user