gnu: Add drascula.
* gnu/packages/games.scm (drascula): New variable.
This commit is contained in:
parent
0dc8c9088f
commit
e93352d6ea
1 changed files with 120 additions and 0 deletions
|
@ -86,6 +86,7 @@ (define-module (gnu packages games)
|
|||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages emulators)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages fonts)
|
||||
|
@ -7161,3 +7162,122 @@ (define-public harmonist
|
|||
the game avoids complex inventory management and character building, relying
|
||||
on items and player adaptability for character progression.")
|
||||
(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"))))
|
||||
|
|
Loading…
Reference in a new issue