aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/games.scm76
1 files changed, 76 insertions, 0 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index ec200250b9..9153a2b5cf 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -136,6 +136,82 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial))
+(define-public cataclysm-dda
+ (package
+ (name "cataclysm-dda")
+ (version "0.C")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/CleverRaven/Cataclysm-DDA/"
+ "archive/" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1xlajmgl9cviqyjpp5g5q4rbljy9gqc49v54bi8gpzr68s14gsb9"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Import cmath header for the std::pow function.
+ '(for-each (lambda (file)
+ (substitute* file
+ (("#include <math.h>")
+ "#include <cmath>")))
+ (find-files "src")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("ncursesw5-config") "ncursesw6-config")
+ (("RELEASE_FLAGS = -Werror") "RELEASE_FLAGS ="))
+ #t))
+ (add-after 'build 'build-tiles
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ ;; Change prefix directory and enable tile graphics and sound.
+ (zero?
+ (apply system* "make" "TILES=1" "SOUND=1"
+ (string-append "PREFIX="
+ (assoc-ref outputs "tiles"))
+ (cdr make-flags)))))
+ (add-after 'install 'install-tiles
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (zero?
+ (apply system* "make" "install" "TILES=1" "SOUND=1"
+ (string-append "PREFIX="
+ (assoc-ref outputs "tiles"))
+ (cdr make-flags))))))
+ ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native
+ ;; input in order to support tests.
+ #:tests? #f))
+ (outputs '("out"
+ "tiles")) ; For tile graphics and sound support.
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("libogg" ,libogg)
+ ("libvorbis" ,libvorbis)
+ ("ncurses" ,ncurses)
+ ("sdl2" ,sdl2)
+ ("sdl2-image", sdl2-image)
+ ("sdl2-ttf" ,sdl2-ttf)
+ ("sdl2-mixer" ,sdl2-mixer)))
+ (home-page "http://en.cataclysmdda.com/")
+ (synopsis "Survival horror roguelike video game")
+ (description
+ "Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
+Struggle to survive in a harsh, persistent, procedurally generated world.
+Scavenge the remnants of a dead civilization for food, equipment, or, if you are
+lucky, a vehicle with a full tank of gas to get you out of Dodge. Fight to
+defeat or escape from a wide variety of powerful monstrosities, from zombies to
+giant insects to killer robots and things far stranger and deadlier, and against
+the others like yourself, that want what you have.")
+ (license license:cc-by-sa3.0)))
+
(define-public freedoom
(package
(name "freedoom")