gnu: Add bzflag.

* gnu/packages/games.scm (bzflag): New variable.
This commit is contained in:
Nicolas Goaziou 2020-06-18 23:25:16 +02:00
parent 393190ce1d
commit db23a54875
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -77,6 +77,7 @@ (define-module (gnu packages games)
#:use-module (guix svn-download)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
@ -579,6 +580,71 @@ (define-public blobwars
license:lgpl2.1+
license:bsd-2))))
(define-public bzflag
(package
(name "bzflag")
(version "2.4.20")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.bzflag.org/bzflag/source/"
version "/bzflag-" version ".tar.bz2"))
(sha256
(base32 "16brxqmfiyz4j4lb8ihzjcbwqmpsms6vm3ijbp34lnw0blbwdjb2"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-desktop-file-and-icons
(lambda* (#:key outputs #:allow-other-keys)
(let* ((share (string-append (assoc-ref outputs "out") "/share"))
(data (string-append share "/bzflag"))
(hicolor (string-append share "/icons/hicolor"))
(applications (string-append share "/applications")))
;; Move desktop file.
(install-file (string-append data "/bzflag.desktop")
applications)
;; Install icons.
(for-each (lambda (size)
(let* ((dim (string-append size "x" size))
(dir (string-append hicolor "/" dim "/apps")))
(mkdir-p dir)
(copy-file
(string-append data "/bzflag-" dim ".png")
(string-append dir "/bzflag.png"))))
'("48" "256")))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("c-ares" ,c-ares)
("curl" ,curl)
("glew" ,glew)
("glu" ,glu)
("sdl2" ,sdl2)
("zlib" ,zlib)))
(home-page "https://www.bzflag.org/")
(synopsis "3D first person tank battle game")
(description
"BZFlag is a 3D multi-player multiplatform tank battle game that
allows users to play against each other in a network environment.
There are five teams: red, green, blue, purple and rogue (rogue tanks
are black). Destroying a player on another team scores a win, while
being destroyed or destroying a teammate scores a loss. Rogues have
no teammates (not even other rogues), so they cannot shoot teammates
and they do not have a team score.
There are two main styles of play: capture-the-flag and free-for-all.
In capture-the-flag, each team (except rogues) has a team base and
each team with at least one player has a team flag. The object is to
capture an enemy team's flag by bringing it to your team's base. This
destroys every player on the captured team, subtracts one from that
team's score, and adds one to your team's score. In free-for-all,
there are no team flags or team bases. The object is simply to get as
high a score as possible.")
;; The game is dual-licensed.
(license (list license:lgpl2.1 license:mpl2.0))))
(define-public cataclysm-dda
(package
(name "cataclysm-dda")