summary refs log tree commit diff
path: root/pkgs/games/scummvm
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2017-12-26 10:46:41 +0800
committerPeter Hoeg <peter@hoeg.com>2018-10-10 17:15:22 +0800
commita75b3205d0442da8ca57adc4559fd279a5a1cdc3 (patch)
treed7b2cd650b4725e0825d2cc30fb60155c753f3f6 /pkgs/games/scummvm
parent0a7e258012b60cbe530a756f09a4f2516786d370 (diff)
downloadnixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.tar
nixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.tar.gz
nixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.tar.bz2
nixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.tar.lz
nixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.tar.xz
nixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.tar.zst
nixpkgs-a75b3205d0442da8ca57adc4559fd279a5a1cdc3.zip
scummvm: add several ScummVM supported games
 - Beneath a Steel Sky: v1.2
 - Drascula: The Vampire Strikes Back: v2.0
 - Flight of the Amazon Queen: v1.1
 - Lure of the Temptress: v1.1
Diffstat (limited to 'pkgs/games/scummvm')
-rw-r--r--pkgs/games/scummvm/games.nix125
1 files changed, 125 insertions, 0 deletions
diff --git a/pkgs/games/scummvm/games.nix b/pkgs/games/scummvm/games.nix
new file mode 100644
index 00000000000..1ccb351af4a
--- /dev/null
+++ b/pkgs/games/scummvm/games.nix
@@ -0,0 +1,125 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, writeText
+, scummvm }:
+
+let
+  desktopItem = name: short: long: description: makeDesktopItem {
+    categories  = "Game;AdventureGame;";
+    comment     = description;
+    desktopName = long;
+    exec        = "@out@/bin/${short}";
+    genericName = description;
+    icon        = "scummvm";
+    name        = name;
+  };
+
+  run = name: short: code: writeText "${short}.sh" ''
+    #!${stdenv.shell} -eu
+
+    exec ${scummvm}/bin/scummvm \
+      --path=@out@/share/${name} \
+      --fullscreen \
+      ${code}
+  '';
+
+  generic = { plong, pshort, pcode, description, version, files, docs ? [ "readme.txt" ], ... } @attrs:
+    let
+      attrs' = builtins.removeAttrs attrs [ "plong" "pshort" "pcode" "description" "docs" "files" "version" ];
+      pname = lib.replaceStrings [ " " ":" ] [ "-" "" ] (lib.toLower plong);
+    in stdenv.mkDerivation ({
+      name = "${pname}-${version}";
+
+      nativeBuildInputs = [ unzip ];
+
+      dontBuild = true;
+      dontFixup = true;
+
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/bin $out/share/{applications,${pname},doc/${pname}}
+
+        ${lib.concatStringsSep "\n" (map (f: "mv ${f} $out/share/doc/${pname}") docs)}
+        ${lib.concatStringsSep "\n" (map (f: "mv ${f} $out/share/${pname}") files)}
+
+        substitute ${run pname pshort pcode} $out/bin/${pshort} \
+          --subst-var out
+        substitute ${desktopItem pname pshort plong description}/share/applications/${pname}.desktop $out/share/applications/${pname}.desktop \
+          --subst-var out
+
+        chmod 0755 $out/bin/${pshort}
+
+        runHook postInstall
+      '';
+
+      meta = with stdenv.lib; {
+        homepage = https://www.scummvm.org;
+        license = licenses.free; # refer to the readme for exact wording
+        maintainers = with maintainers; [ peterhoeg ];
+        inherit description;
+        inherit (scummvm.meta) platforms;
+      };
+    } // attrs');
+
+in {
+  beneath-a-steel-sky = generic rec {
+    plong = "Beneath a Steel Sky";
+    pshort = "bass";
+    pcode = "sky";
+    description = "2D point-and-click science fiction thriller set in a bleak vision of the future";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/${pshort}-cd-${version}.zip";
+      sha256 = "14s5jz67kavm8l15gfm5xb7pbpn8azrv460mlxzzvdpa02a9n82k";
+    };
+    files = [ "sky.*" ];
+  };
+
+  drascula-the-vampire-strikes-back = generic rec {
+    plong = "Drascula: The Vampire Strikes Back";
+    pshort = "drascula";
+    pcode = "drascula";
+    description = "Spanish 2D classic point & click style adventure with tons of humor and an easy interface";
+    version = "1.0";
+    # srcs = {
+      src = fetchurl {
+        url = "mirror://sourceforge/scummvm/${pshort}-${version}.zip";
+        sha256 = "1pj29rpb754sn6a56f8brfv6f2m1p5qgaqik7d68pfi2bb5zccdp";
+      };
+      # audio = fetchurl {
+        # url = "mirror://sourceforge/scummvm/${pshort}-audio-flac-2.0.zip";
+        # sha256 = "1zmqhrby8f5sj1qy6xjdgkvk9wyhr3nw8ljrrl58fmxb83x1rryw";
+      # };
+    # };
+    sourceRoot = ".";
+    docs = [ "readme.txt" "drascula.doc" ];
+    files = [ "Packet.001" ];
+  };
+
+  flight-of-the-amazon-queen = generic rec {
+    plong = "Flight of the Amazon Queen";
+    pshort = "fotaq";
+    pcode = "queen";
+    description = "2D point-and-click adventure game set in the 1940s";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/FOTAQ_Talkie-${version}.zip";
+      sha256 = "1a6q71q1dl9vvw2qqsxk5h1sv0gaqy6236zr5905w2is01gdsp52";
+    };
+    sourceRoot = ".";
+    files = [ "*.1c" ];
+  };
+
+  lure-of-the-temptress = generic rec {
+    plong = "Lure of the Temptress";
+    pshort = "lott";
+    pcode = "lure";
+    description = "2D point-and-click adventure game with a fantasy theme";
+    version = "1.1";
+    src = fetchurl {
+      url = "mirror://sourceforge/scummvm/lure-${version}.zip";
+      sha256 = "0201i70qcs1m797kvxjx3ygkhg6kcl5yf49sihba2ga8l52q45zk";
+    };
+    docs = [ "README" "*.txt" "*.pdf" "*.PDF" ];
+    files = [ "*.vga" ];
+  };
+}