gnu: Add drascula.

* gnu/packages/games.scm (drascula): New variable.
This commit is contained in:
Nicolas Goaziou 2019-05-15 22:32:50 +02:00
parent 0dc8c9088f
commit e93352d6ea
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D

View file

@ -86,6 +86,7 @@ (define-module (gnu packages games)
#:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages emulators)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages fltk) #:use-module (gnu packages fltk)
#:use-module (gnu packages fonts) #:use-module (gnu packages fonts)
@ -7161,3 +7162,122 @@ (define-public harmonist
the game avoids complex inventory management and character building, relying the game avoids complex inventory management and character building, relying
on items and player adaptability for character progression.") on items and player adaptability for character progression.")
(license license:isc))) (license license:isc)))
(define-public drascula
(package
(name "drascula")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scummvm/extras/"
"Drascula_%20The%20Vampire%20Strikes%20Back/"
"drascula-" version ".zip"))
(sha256
(base32
"1pj29rpb754sn6a56f8brfv6f2m1p5qgaqik7d68pfi2bb5zccdp"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 match))
(let* ((out (assoc-ref %outputs "out"))
(share (string-append out "/share/drascula"))
(scummvm (assoc-ref %build-inputs "scummvm")))
;; Install data.
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(doc (string-append out "/share/doc/" ,name "-" ,version)))
(for-each
(lambda (input)
(invoke unzip
"-j"
(assoc-ref %build-inputs input)
"-x" "__MACOSX")
;; Every input provides "readme.txt", and we want to
;; preserve them all. Therefore we rename them first.
(match input
("drascula-int"
(rename-file "readme.txt" "readme-international.txt"))
("drascula-audio"
(rename-file "readme.txt" "readme-audio.txt"))
(_ #f))
;; Install documentation.
(for-each (lambda (f) (install-file f doc))
(find-files "." "\\.(txt|doc)$"))
;; Install data.
(for-each (lambda (f) (install-file f share))
(find-files "." "\\.(ogg|00[0-9])$")))
'("drascula-audio" "drascula-int" "source")))
;; Create standalone executable.
(let* ((bin (string-append out "/bin"))
(executable (string-append bin "/drascula"))
(bash (string-append (assoc-ref %build-inputs "bash")
"/bin/bash")))
(mkdir-p bin)
(with-output-to-file executable
(lambda ()
(format #t "#!~a~%" bash)
(format #t
"exec ~a/bin/scummvm --path=~a drascula~%"
scummvm share)))
(chmod executable #o755))
;; Create desktop file. There is no dedicated icon for the
;; game, so we borrow SCUMMVM's.
(let ((apps (string-append out "/share/applications")))
(mkdir-p apps)
(with-output-to-file (string-append apps "/drascula.desktop")
(lambda _
(format #t
"[Desktop Entry]~@
Name=Drascula: The Vampire Strikes Back~@
GenericName=Drascula~@
Exec=~a/bin/drascula~@
Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
Categories=AdventureGame;Game;RolePlaying;~@
Keywords=game;adventure;roleplaying;2D,fantasy;~@
Comment=Classic 2D point and click adventure game~@
Comment[de]=klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier~@
Comment[fr]=Jeux classique d'aventure pointer-et-cliquer en 2D~@
Comment[it]=Gioco classico di avventura punta e clicca 2D~@
Type=Application~%"
out scummvm))))
#t))))
(native-inputs
`(("bash" ,bash)
("unzip" ,unzip)))
(inputs
`(("scummvm" ,scummvm)
("drascula-int"
,(let ((version "1.1"))
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scummvm/extras/"
"Drascula_%20The%20Vampire%20Strikes%20Back/"
"drascula-int-" version ".zip"))
(sha256
(base32
"12236i7blamal92p1i8dgp3nhp2yicics4whsl63v682bj999n14")))))
("drascula-audio"
,(let ((version "2.0"))
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scummvm/extras/"
"Drascula_%20The%20Vampire%20Strikes%20Back/"
"drascula-audio-" version ".zip"))
(sha256
(base32
"00g4izmsqzxb8ry1vhfx6jrygl58lvlij09nw01ds4zddsiznsky")))))))
(home-page "https://www.scummvm.org")
(synopsis "Classic 2D point and click adventure game")
(description "Drascula: The Vampire Strikes Back is a classic humorous 2D
point and click adventure game.
In Drascula you play the role of John Hacker, a British estate agent, that
gets to meet a gorgeous blond girl who is kidnapped by the notorious vampire
Count Drascula and embark on a fun yet dangerous quest to rescue her.
Unfortunately, Hacker is not aware of Drascula's real ambitions: DOMINATING
the World and demonstrating that he is even more evil than his brother Vlad.")
;; Drascula uses a BSD-like license.
(license (license:non-copyleft "file:///readme.txt"))))