Subject: Re: [PATCH 2/2] gnu: Add openquest.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 22 Jul 2023 11:23:06 +0200

Am Samstag, dem 22.07.2023 um 16:27 +0800 schrieb Adam Faiz:
> From 856d172ba50107ee74fe5c2aca5114923c89fbb1 Mon Sep 17 00:00:00
> 2001
> Message-ID:
> <856d172ba50107ee74fe5c2aca5114923c89fbb1.1690012542.git.adam.faiz@di
> sroot.org>
> In-Reply-To: <[email-masked]>
> References: <[email-masked]>
> From: AwesomeAdam54321 <[email-masked]>
> Date: Sat, 22 Jul 2023 15:38:48 +0800
> Subject: [PATCH 2/2] gnu: Add openquest.
> 
> * gnu/packages/games.scm (openquest): New variable.
> ---
>  gnu/packages/games.scm | 49
> ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
> 
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index c388314771..7355b295b7 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -5094,6 +5094,55 @@ (define openrct2-objects
>      "openrct2-objects is a set of objects for OpenRCT2.")
>     (license license:gpl3+)))
>  
> +(define-public openquest
> +  (package
> +    (inherit scummc)
> +    (name "openquest")
> +    (build-system trivial-build-system)
As a matter of principle, almost always prefer copy-build-system over
trivial-build-system, but see below.
> +    (arguments
> +     `(#:modules ((guix build utils))
> +       #:builder
> +       (begin
> +         (use-modules (guix build utils)
> +                      (ice-9 match))
> +         (let* ((out (assoc-ref %outputs "out"))
> +                (scummc (assoc-ref %build-inputs "scummc"))
> +                (share (string-append scummc "/examples/openquest"))
> +                (scummvm (assoc-ref %build-inputs "scummvm")))
> +           ;; Create standalone executable.
> +           (let* ((bin (string-append out "/bin"))
> +                  (executable (string-append bin "/openquest"))
> +                  (bash (search-input-file %build-inputs
> "/bin/bash")))
> +             (mkdir-p bin)
> +             (with-output-to-file executable
> +               (lambda ()
> +                 (format #t "#!~a~%" bash)
> +                 (format #t
> +                         "exec ~a/bin/scummvm --path=~a tentacle~%"
> +                         scummvm share)))
> +             (chmod executable #o755))
IIUC this is done via "make tentacle" in the previous package.
We would have to set the following make-flags:

SCC  = scc
SLD  = sld
COST = cost
CHAR = char
SOUN = soun

as well as possible other adjustments to use it without rebuilding, but
I'd say that's worth a try.

> +           ;; Create desktop file.  There is no official icon,
> +           ;; but the main character of the game is a good choice.
> +           (let ((apps (string-append out "/share/applications")))
> +             (mkdir-p apps)
> +             (make-desktop-entry-file
> +              (string-append apps "/openquest.desktop")
> +              #:name "OpenQuest"
> +              #:generic-name "OpenQuest"
> +              #:exec (string-append out "/bin/openquest")
> +              #:icon (string-append scummc
> "/examples/openquest/graphics/zob/frames/stand_S.bmp")
> +              #:categories '("AdventureGame" "Game" "RolePlaying")
> +              #:keywords '("game" "adventure" "roleplaying" "2D"
> "sci-fi")
> +              #:comment '((#f "Simple 2D point and click adventure
> game"))))))))
> +    (native-inputs
> +     (list bash unzip))
> +    (inputs
> +     (list scummc scummvm))
> +    (home-page "https://www.scummvm.org")
> +    (synopsis "Simple 2D point and click adventure game")
> +    (description "OpenQuest is a two room adventure game
> +that follows two aliens who come to Earth in search of a stolen
> artifact.")))
> +
> 

Cheers