gnu: Add tome4.
* gnu/packages/games.scm (tome4): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
1975c754f4
commit
1f88f189eb
|
@ -4617,3 +4617,123 @@ (define-public open-adventure
|
||||||
Crowther & Woods, its original authors, in 1995. It has been known as
|
Crowther & Woods, its original authors, in 1995. It has been known as
|
||||||
\"adventure 2.5\" and \"430-point adventure\".")
|
\"adventure 2.5\" and \"430-point adventure\".")
|
||||||
(license license:bsd-2))))
|
(license license:bsd-2))))
|
||||||
|
|
||||||
|
(define-public tome4
|
||||||
|
(package
|
||||||
|
(name "tome4")
|
||||||
|
(version "1.5.5")
|
||||||
|
(synopsis "Single-player, RPG roguelike game set in the world of Eyal")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-"
|
||||||
|
version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0v2qgdfpvdzd1bcbp9v8pfahj1bgczsq2d4xfhh5wg11jgjcwz03"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(for-each (lambda (file)
|
||||||
|
(substitute* file
|
||||||
|
(("#elif defined(__FreeBSD__)" line)
|
||||||
|
(string-append
|
||||||
|
line " || defined(__GNUC__)"))))
|
||||||
|
'("src/music.h" "src/tSDL.h")))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("unzip" ,unzip)))
|
||||||
|
(inputs
|
||||||
|
`(("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))
|
||||||
|
("glu" ,glu)
|
||||||
|
("premake4" ,premake4)
|
||||||
|
("openal" ,openal)
|
||||||
|
("vorbis" ,libvorbis)
|
||||||
|
("luajit" ,luajit)))
|
||||||
|
(arguments
|
||||||
|
`(#:make-flags '("CC=gcc" "config=release")
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda _
|
||||||
|
(zero? (system* "premake4" "gmake"))
|
||||||
|
#t))
|
||||||
|
(add-after 'set-paths 'set-sdl-paths
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(setenv "CPATH"
|
||||||
|
(string-append (assoc-ref inputs "sdl-union")
|
||||||
|
"/include/SDL2"))
|
||||||
|
#t))
|
||||||
|
(delete 'check)
|
||||||
|
;; premake doesn't provide install target
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(usr (string-append out "/usr"))
|
||||||
|
(bin (string-append out "/bin"))
|
||||||
|
(licenses (string-append out "/share/licenses"))
|
||||||
|
(documents (string-append out "/share/doc"))
|
||||||
|
(pixmaps (string-append out "/share/pixmaps"))
|
||||||
|
(icon "te4-icon.png")
|
||||||
|
(data (string-append out "/share/" ,name))
|
||||||
|
(applications (string-append
|
||||||
|
out "/share/applications"))
|
||||||
|
(unzip (string-append
|
||||||
|
(assoc-ref inputs "unzip") "/bin/unzip"))
|
||||||
|
(wrapper (string-append bin "/" ,name)))
|
||||||
|
;; icon
|
||||||
|
(mkdir-p pixmaps)
|
||||||
|
(system* unzip "-j"
|
||||||
|
(string-append
|
||||||
|
"game/engines/te4-" ,version ".teae")
|
||||||
|
(string-append
|
||||||
|
"data/gfx/" icon) "-d" pixmaps)
|
||||||
|
;; game executable
|
||||||
|
(install-file "t-engine" data)
|
||||||
|
(mkdir-p bin)
|
||||||
|
(with-output-to-file wrapper
|
||||||
|
(lambda ()
|
||||||
|
(display
|
||||||
|
(string-append
|
||||||
|
"#!/bin/sh\n"
|
||||||
|
;; No bootstrap code found,
|
||||||
|
;; defaulting to working directory
|
||||||
|
;; for engine code!
|
||||||
|
"cd " data "\n"
|
||||||
|
"exec -a tome4 ./t-engine \"$@\"\n"))))
|
||||||
|
(chmod wrapper #o555)
|
||||||
|
;; licenses
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file licenses))
|
||||||
|
'("COPYING" "COPYING-MEDIA"))
|
||||||
|
;; documents
|
||||||
|
(for-each (lambda (file)
|
||||||
|
(install-file file documents))
|
||||||
|
'("CONTRIBUTING" "CREDITS"))
|
||||||
|
;; data
|
||||||
|
(copy-recursively "bootstrap" (string-append
|
||||||
|
data "/bootstrap"))
|
||||||
|
(copy-recursively "game" (string-append data "/game"))
|
||||||
|
;; launcher
|
||||||
|
(mkdir-p applications)
|
||||||
|
(with-output-to-file (string-append applications "/"
|
||||||
|
,name ".desktop")
|
||||||
|
(lambda ()
|
||||||
|
(display
|
||||||
|
(string-append
|
||||||
|
"[Desktop Entry]
|
||||||
|
Name=ToME4
|
||||||
|
Comment=" ,synopsis "\n"
|
||||||
|
"Exec=" ,name "\n"
|
||||||
|
"Icon=" icon "\n"
|
||||||
|
"Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Game;RolePlaying;\n")))))
|
||||||
|
#t)))))
|
||||||
|
(home-page "https://te4.org")
|
||||||
|
(description "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based
|
||||||
|
combat and advanced character building. Play as one of many unique races and
|
||||||
|
classes in the lore-filled world of Eyal, exploring random dungeons, facing
|
||||||
|
challenging battles, and developing characters with your own tailored mix of
|
||||||
|
abilities and powers. With a modern graphical and customisable interface,
|
||||||
|
intuitive mouse control, streamlined mechanics and deep, challenging combat,
|
||||||
|
Tales of Maj’Eyal offers engaging roguelike gameplay for the 21st century.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
Loading…
Reference in a new issue